Неверное имя класса или путь к классу не установлен ERROR в Netbeans с сервером Glassfish 5 и JPA - PullRequest
0 голосов
/ 19 апреля 2019

У меня есть веб-приложение в Netbeans 11 (с установленным JDK 8), я добавил зависимости для mysql-connector-java-8.0.15.jar и сгенерировал JPA из своей БД.

Нет ошибок при его создании.

Но когда я пытаюсь запустить его, сервер Glassfish выдает мне эти ошибки (ссылка на вставку) .

Это мое упорство.xml, который я установил соответственно, это:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence 
http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
  <persistence-unit name="InvoicesPU" transaction-type="JTA">
    <jta-data-source>java:app/Invoices</jta-data-source>
    <exclude-unlisted-classes>false</exclude-unlisted-classes>
    <properties/>
  </persistence-unit>
</persistence>

И в моем классе Java я называю это следующим образом:

@Stateless
public class InvoiceEJB implements InvoiceEJBLocal {

    @PersistenceContext(unitName = "InvoicesPU")
    EntityManager em;
    ...
    em.someMethod();

Для полноты, у меня нет ошибки на этапе компиляции!

Кто-нибудь знает, как это решить?

Ответы [ 2 ]

0 голосов
/ 20 апреля 2019

После некоторого исследования я решил это следующим образом:

  1. черпая вдохновение из подобной проблемы , я создал пул соединений иРесурс в консоли администратора Glassfish, предложенный devmind после this .

  2. Я удалил в качестве зависимости mysql-connector-java-8.x.x.jar и добавилmysql-connector-java-5.x.x.jar

  3. В the persistence.xml Я установил имя JNDI для тега jta-data-source

И все идет как ожидалось!

Я не знаю, как заставить все работать с последней версией MySQL Connector, но, по крайней мере, так работает мое веб-приложение.

РЕДАКТИРОВАТЬ: дляпоследние версии MySQL-соединителя, так как devmind предлагает вам установить MysqlDataSource: от com.mysql.jdbc.jdbc2.optional.MysqlDataSource до com.mysql.cj.jdbc.MysqlDataSource, как сообщается здесь .

Я надеюсь, что это полезнокому-то еще.

0 голосов
/ 19 апреля 2019

Попробуйте поместить файл драйвера JDBC в папку lib домена Glassfish. Я обычно храню их в lib/ext.

...