Подключение базы данных MySQL к пути класса Glassfish не задано или имя класса неверно
Я использую базу данных derby для MySQL. У меня было все, что работало раньше, но после того, как я думал, что это правильная конфигурация, я получаю сообщение об ошибке:
Вызывается: javax.resource.ResourceException: Имя класса неверно, или classpath не установлен для: com.mysql.jdbc.jdbc2.optional.MysqlDataSource
Полный вывод ошибок из консоли:
Caused by: javax.resource.ResourceException: Class name is wrong or classpath is not set for : com.mysql.jdbc.jdbc2.optional.MysqlDataSource
at com.sun.gjc.common.DataSourceObjectBuilder.getDataSourceObject(DataSourceObjectBuilder.java:292)
at com.sun.gjc.common.DataSourceObjectBuilder.constructDataSourceObject(DataSourceObjectBuilder.java:114)
at com.sun.gjc.spi.ManagedConnectionFactory.getDataSource(ManagedConnectionFactory.java:1292)
at com.sun.gjc.spi.DSManagedConnectionFactory.getDataSource(DSManagedConnectionFactory.java:148)
at com.sun.gjc.spi.DSManagedConnectionFactory.createManagedConnection(DSManagedConnectionFactory.java:101)
at com.sun.enterprise.resource.allocator.LocalTxConnectorAllocator.createResource(LocalTxConnectorAllocator.java:87)
Я дважды проверил некоторые имена, пул соединений и другие ресурсы. Я также добавил MySQL-драйвер .jars в библиотеку стеклянной рыбы в обоих проектах. База данных, безусловно, работала правильно через eclipse, потому что мне удалось просмотреть таблицы и отобразить ресурсы внутри контекста базы данных eclipse. Поэтому я знаю, что, по крайней мере, эти драйверы работают корректно. Также файл persistence.xml выглядит хорошо. он ссылается на ссылку jdbc/mydatabase jndi, как он должен, и по умолчанию JTA выбирается как тип манов.
Есть ли у кого-нибудь другое предложение? Спасибо вам
Ответы
Ответ 1
Я также добавил драйвер MySQL.jars в библиотеку стеклянной рыбы в обоих проектах.
По-видимому, это было сделано не так. JAR должен находиться в папке /glassfish/domains/[domainname]/lib/ext
установки Glassfish, где [domainname]
обычно по умолчанию имеет значение domain1
. Вы можете и не должны настраивать его со стороны Eclipse.
Ответ 2
Похоже, я отвечаю очень поздно, но, тем не менее, люди, которые будут ссылаться на эту тему, могут найти полезную информацию. Поэтому я размещаю его здесь:
- Загрузите коннектор Jar из http://dev.mysql.com/downloads/connector/j/5.0.html
- разархивируйте пакет и скопируйте mysql-connector-java-verno-bin.jar
- прошлое в каталоге [GlassFish Installation Directory]/domains/[имя домена]/lib
- перезапустите свой домен и выполните ping, чтобы проверить ваше соединение в пулах соединений JDBC.
Там вы идете. Если ваш MySql запущен, он успешно выполнит успешную проверку базы данных
Ответ 3
Я скопировал файл jar в $glassfish_install_folder\glassfish\lib
, после чего он сработал. Я использую стеклянную рыбку 4.0.
Отметьте ссылку из oracle.
Ответ 4
Я столкнулся с этой проблемой в 2018 году и хотел бы отметить, что если вы используете glassfish 4 (текущее значение 5), то, похоже, вам нужно использовать версию Connector/J 5.1.47 для его работы. Если вы используете текущую версию (Connector/J 8.0.13), то исключение, упомянутое в исходном вопросе, будет появляться независимо от того, где вы разместите файл.jar.
С Connector/J 5.1.47 работает отлично.