Проблема пути к классам при подключении корпоративного приложения Java EE 7 к SQL Server в NetBeans

Попытка подключить приложение Java EE7 Enterprise к базе данных SQL Server 2014 Express (в Windows 7 Ultimate SP1, а также еще один случай в Windows Server 2008 R2). IDE — это NetBeans 8.0.2. Веб-сервер — GlassFish 4.1. JDK 1.8.

Само соединение, кажется, работает в том смысле, что я создал БД в SQL Server, добавил новое соединение в разделе «Службы» в базе данных в NetBeans и использовал sqljdbc42.jar в качестве драйвера с host = «localhost», порт =1433, имя пользователя и пароль установлены. Проверка соединения прошла успешно.

TCP/IP включен в диспетчере конфигурации SQL Server.

Проблема очевидна при настройке пула соединений JDBC в GlassFish. При проверке связи: «Ошибка пула соединений Ping [..] Неверное имя класса или путь к классам не установлен для: com.microsoft.sqlserver.jdbc.SQLServerDriver»

Проект собирается, но не развертывается.

Вывод заметного сервера выглядит следующим образом:

Severe:   Exception while invoking class org.glassfish.persistence.jpa.JPADeployer prepare method
Severe:   Exception while invoking class org.glassfish.javaee.full.deployment.EarDeployer prepare method
Severe:   org.glassfish.deployment.common.DeploymentException: Invalid resource : jdbc/assessingReports__pm

Я отмечаю следующее от BalusC в отношении пути к классам в NetBeans (из classNotFoundException in Loading JDBC Driver):

«Обратите внимание, что переменная среды CLASSPATH игнорируется Netbeans и всеми другими приличными программами Java. Забудьте об этом и даже не пытайтесь установить ее, пока не поймете, почему она существует и для чего ее следует использовать».

Соответственно, после первоначальной попытки установить среду CLASSPATH в cmd, как и все остальные, я смотрел, как я добавляю sqljdbc42.jar в проект. Я сделал это через свойства проекта как в веб-проекте, так и в модуле EJB.

Я попытался добавить банку, выбрав опцию «Копировать в папку библиотек», а также выбрав опцию «Абсолютный путь».

введите здесь описание изображения

.. и файл jar, похоже, успешно добавлен в библиотеки

введите здесь описание изображения

Я также вручную поместил файл sqljdbc42.jar в папку web\WEB-INF\lib\, а затем перезапустил NetBeans. Банка в библиотеке web-inf остается зеленой.

введите здесь описание изображения

Я мог бы упустить что-то в целом в том, как добавлять банки (в отличие от библиотек) в проекты, отличные от Maven NetBeans.

Проблема сохраняется. Любые комментарии или помощь приветствуются. Спасибо.


person anvw    schedule 03.05.2016    source источник


Ответы (1)


Вероятно, одна из тех ситуаций facepalm. Похоже, что это решается только путем перестроения проекта с нуля на целевой платформе (Windows Server 2008 R2). Вполне вероятно, что ранее я неоднократно попадал в тупик из-за файлов сборки, которые нависали над платформой, на которой она изначально была построена, с ее подключением к JavaDB, а не к SQL-серверу: старые файлы сборки продолжали искать файлы, которых там не было. Что касается загрузки JAR-файлов в NetBeans, я могу заметить, что развертывание чувствительно к месту, из которого загружается JAR-файл. Теперь я избегаю размещения JAR-файлов в WEB-INF в военном или веб-модуле. Кажется, это создает проблемы со сборкой, по крайней мере, в том, что касается sqljdbc42.jar или подобных файлов драйверов.

person anvw    schedule 04.05.2016