SQLServerException при попытке использовать Fitnesse и DbFit и SQL Server

Я новичок в обоих (Java) FitNesse и SQL Server, я хочу иметь базовый тест SQL, работающий с DbFit,

У меня есть в корне следующее:

!path c:\fitnesse\lib\dbfit.jar
!path c:\fitnesse\lib\fitlibrary.jar
!path c:\fitnesse\lib\sqljdbc4.jar
|Import|
|dbfit.SqlServerTest|

У меня есть следующее в моем HelloWorldTest,

!contents -R2 -g -p -f -h

!|dbfit.SqlServerTest|

|Connect|LOCALSQLEXPRESS|sa|Password|somePassword:|

|eg.Division|
|numerator|denominator|quotient?|
|10       |2          |5        |
|12.6     |3          |4.2      |
|100      |4          |33       |  

Что я пробовал:

  • Я дважды проверил свое имя пользователя и пароль SQLExpress, и экземпляр SqlServer находится на localhost. Я сомневаюсь, что это проблема брандмауэра. (Мое понимание брандмауэра довольно слабое по общему признанию.)
  • Рассматривая Sql Server Configuration Manager (SSCM),
    • Я вижу, что "SQL Server (SQLEXPRESS) работает как процесс с идентификатором 2316,
    • Используя команду PowerShell "nestat -a -no | Select-String 2316", я вижу, что процесс на порту 55618.
  • Затем в SSCM я создаю псевдоним "LOCALSQLEXPRESS" в "Конфигурация собственного клиента SQL 11.0 (32-разрядная версия)" и "Конфигурация собственного клиента SQL 11.0", поскольку я понятия не имею, что использует мой JDBC. (Очевидно, JDBC для SQL Server не поддерживает именованный экземпляр, я получил исключение, сообщающее мне об этом, когда я пытался подключиться к \localhost\SQLEXPRESS напрямую) Я также включил "TCP/IP" и "Общая память" в "Протоколах". для SQLEXPRESS".

Я получаю следующую ошибку при запуске теста:

com.microsoft.sqlserver.jdbc.SQLServerException: сбой соединения TCP / IP с хостом LOCALSQLEXPRESS, порт 1433. Ошибка: "null. Проверьте свойства соединения. Убедитесь, что экземпляр SQL Server запущен на хосте и принимает соединения TCP / IP на порту. Убедитесь, что соединения TCP с портом не заблокированы брандмауэром.".

(Обратите внимание на номер порта 1433, несмотря на то, что мой псевдоним указывает на порт 55618.)

Это мой первый пост в Stackru, прошу прощения за любую глупость. Кто-нибудь может пролить свет?

1 ответ

Решение

Я надеюсь, что lingo_journey уже решил проблему. Для других, у которых может быть такая же проблема, я изначально также не мог заставить именованный экземпляр работать с многопараметрическим Connect.

Чтобы решить эту проблему, я переключился на строку подключения в качестве параметра для Connect:

1) гарантированно работает служба браузера SQL Server (как указано в комментариях выше)

2) изменил параметр Connect, как показано ниже:

!| Connect | jdbc:sqlserver://localhost\SQLEXPRESS;databaseName=DB_NAME;integratedSecurity=true |

Следующее также работает с использованием аутентификации SQL Server (которая, вероятно, более применима к lingo_journey:

!| Connect | jdbc:sqlserver://localhost\SQLEXPRESS;databaseName=DB_NAME;user=user1;password=Welcome!|

Обратите внимание, что в некоторых примерах, которые я видел в Интернете, sqlserver: был опущен в строке подключения, которая не работала для меня.

Другие вопросы по тегам