Соединение базы данных MySQL с классовым путем Glassfish не задано или неверное имя класса - PullRequest
23 голосов
/ 02 декабря 2011

Я заменяю базу данных derby на MySQL. У меня все работало до этого, но после того, что я считал правильной конфигурацией, я получаю сообщение об ошибке:

Причина: javax.resource.ResourceException: неверно имя класса или не указан путь к классу: 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 в библиотеку glassfish в обоих проектах. С помощью Eclipse база данных определенно работала правильно, потому что я мог просматривать таблицы и отображать ресурсы в контексте базы данных Eclipse. Так что я знаю, что, по крайней мере, эти драйверы работают правильно. Также хорошо выглядит файл persistence.xml. он ссылается на jndi-ссылку на jdbc / mydatabase, как и должно быть, и JTA по умолчанию выбран в качестве типа управления.

У кого-нибудь есть другое предложение? Спасибо

Ответы [ 4 ]

37 голосов
/ 02 декабря 2011

Я также добавил драйвер MySQL .jars в библиотеку glassfish в обоих проектах.

Это, видимо, было сделано неправильно. JAR должен идти в папку /glassfish/domains/[domainname]/lib/ext установки Glassfish, где [domainname] обычно по умолчанию domain1. Вы можете и не должны настраивать его со стороны Eclipse.

23 голосов
/ 02 августа 2012

Похоже, я отвечаю очень поздно, но, тем не менее, люди, которые ссылаются на эту ветку, могут найти следующую информацию полезной. Поэтому я выкладываю это здесь:

  1. Скачать разъем Jar от http://dev.mysql.com/downloads/connector/j/5.0.html
  2. распакуйте пакет и скопируйте mysql-connector-java-verno-bin.jar
  3. после того же самого в [Каталог установки GlassFish] / domains / [имя домена] / папка lib
  4. перезапустите домен и проверьте связь с пулом соединений JDBC

Вот, пожалуйста. Если ваш MySql запущен, он успешно пропингует БД

5 голосов
/ 16 октября 2014

Я скопировал файл jar в $glassfish_install_folder\glassfish\lib, после этого он заработал. Я использую Glassfish 4.0 .

Проверьте эту ссылку от оракула.

1 голос
/ 11 декабря 2018

Я столкнулся с этой проблемой в 2018 году и хотел бы заметить, что если вы используете glassfish 4 (текущее значение 5), то, похоже, вам нужно использовать версию Connector / J 5.1.47, чтобы она работала. Если вы используете текущую версию (Connector / J 8.0.13), то исключение, упомянутое в исходном вопросе, будет появляться независимо от того, где вы разместите файл .jar.

С Connector / J 5.1.47 он работает отлично.

...