Подтвердить что ты не робот

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

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

4b9b3361

Ответ 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 работает отлично.