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: был опущен в строке подключения, которая не работала для меня.