Glassfish Hibernate JPA 2.0 Исключения - PullRequest
3 голосов
/ 23 января 2012

Я использую Glassfish 3.1.1 и hibernate 3.6.5 с MySQL 5.1 + mysql-connector-java-5.1.6

Периодически я получаю следующее исключение при запуске или развертывании JSF2.0 иМодуль на основе EJB3.1

java.lang.IllegalStateException: WEB9031: WebappClassLoader unable to load resource [com.mysql.jdbc.TimeUtil], because it has not yet been started, or was already stopped

Ну, ресурс постоянно меняется, иногда это org.hibernate.event.EventListeners$2 или com.mysql.jdbc.profiler.ProfilerEventHandlerFactory или import.sql

Может быть, это как-то связано с моимconfig,

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence">
  <persistence-unit name="XXXX" transaction-type="JTA">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <jta-data-source>jdbc/XXXXXX</jta-data-source>
    <exclude-unlisted-classes>false</exclude-unlisted-classes>
    <properties>
      <property name="hibernate.show_sql" value="true"/>
      <property name="hibernate.hbm2ddl.auto" value="create-drop"/>
    </properties>
  </persistence-unit>
</persistence>

Свойства, настроенные в пуле соединений Glassfish,

driverClass: com.mysql.jdbc.Driver
URL: jdbc:mysql://localhost:3306/XXXX
portNumber: 3306
databaseName: XXXX
serverName: localhost
user: yyy
password: yyy

Может кто-нибудь помочь мне с этим?

1 Ответ

2 голосов
/ 23 января 2012

Ах, ха. Наконец-то я выяснил причину ошибки. Это была проблема с Nebeans, который всегда выбирал неправильную версию JPA в файле persistence.xml. Итак, я вручную настроил файл persistence.xml следующим образом, и теперь он работает нормально.

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
    <persistence-unit name="XXXX" transaction-type="JTA">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <jta-data-source>jdbc/XXXXXX</jta-data-source>
    <exclude-unlisted-classes>false</exclude-unlisted-classes>
    <properties>
      <property name="hibernate.show_sql" value="true"/>
      <property name="hibernate.hbm2ddl.auto" value="create-drop"/>
    </properties>
  </persistence-unit>
</persistence>
...