Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > JBoss 4.0.5 + EJB 3.0 = Deployment error


Автор: Technology 25.9.2007, 16:59
Здраствуйте!

При работе с JBoss  AS 4.0.5 возникла проблема. Когда я использовал только Session beans, все было нормально. До тех пор, пока не пришел файл persistence.xml. В разрабатываемой системе понадобилась поддержка Java Persistence. Разметил нужные классы аннотациями. Создал файл persistence.xml:

Код

<?xml version="1.0" encoding="UTF-8"?>
<persistence>
 <persistence-unit name="taxiCity">
       <provider>org.hibernate.ejb.HibernatePersistence</provider>
       <jta-data-source>java:/DefaultDS</jta-data-source>
       <jar-file>../SearchService.jar</jar-file>
       <class>com.magenta.model.CityObject</class>
       <class>com.magenta.model.CityObjectType</class>
       <properties>
            <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLInnoDBDialect"/>
            <property name="hibernate.hbm2ddl.auto" value="update"/>
            <property name="hibernate.connection.charset" value="UTF-8"/>
            <property name="hibernate.cache.use_second_level_cache" value="false"/>
            <property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider"/>
       </properties>
   </persistence-unit>
</persistence>


Возникла ошибка при deployment'е поего пакета:
Код

18:44:45,500 INFO  [Ejb3Deployment] EJB3 deployment time took: 297
18:44:45,515 INFO  [JmxKernelAbstraction] installing MBean: persistence.units:jar=SearchService.jar,unitName=taxiCity with dependencies:
18:44:45,515 INFO  [JmxKernelAbstraction]    jboss.jca:name=DefaultDS,service=DataSourceBinding
18:44:45,593 INFO  [Version] Hibernate EntityManager 3.2.0.GA
18:44:45,656 INFO  [Version] Hibernate Annotations 3.2.0.GA
18:44:45,687 INFO  [Environment] Hibernate 3.1
18:44:45,703 INFO  [Environment] hibernate.properties not found
18:44:45,703 INFO  [Environment] using CGLIB reflection optimizer
18:44:45,703 INFO  [Environment] using JDK 1.4 java.sql.Timestamp handling
18:44:45,796 WARN  [ServiceController] Problem starting service persistence.units:jar=SearchService.jar,unitName=taxiCity
java.lang.RuntimeException: java.lang.NoSuchMethodError: org.hibernate.cfg.AnnotationConfiguration.setEntityNotFoundDelegate(Lorg/hibernate/proxy/EntityNotFoundDelegate;)V
    at org.jboss.ejb3.ServiceDelegateWrapper.startService(ServiceDelegateWrapper.java:108)

...
...
...


18:44:45,859 INFO  [JmxKernelAbstraction] installing MBean: jboss.j2ee:jar=SearchService.jar,name=SearchServiceBean,service=EJB3 with dependencies:
18:44:46,109 INFO  [EJBContainer] STARTED EJB: com.magenta.ejb.SearchServiceBean ejbName: SearchServiceBean
18:44:46,390 INFO  [EJB3Deployer] Deployed: file:/C:/jboss405/server/default/deploy/SearchService.jar
18:44:46,390 ERROR [URLDeploymentScanner] Incomplete Deployment listing:

--- MBeans waiting for other MBeans ---
ObjectName: persistence.units:jar=SearchService.jar,unitName=taxiCity
  State: FAILED
  Reason: java.lang.RuntimeException: java.lang.NoSuchMethodError: org.hibernate.cfg.AnnotationConfiguration.setEntityNotFoundDelegate(Lorg/hibernate/proxy/EntityNotFoundDelegate;)V
  I Depend On:
    jboss.jca:service=DataSourceBinding,name=DefaultDS

--- MBEANS THAT ARE THE ROOT CAUSE OF THE PROBLEM ---
ObjectName: persistence.units:jar=SearchService.jar,unitName=taxiCity
  State: FAILED
  Reason: java.lang.RuntimeException: java.lang.NoSuchMethodError: org.hibernate.cfg.AnnotationConfiguration.setEntityNotFoundDelegate(Lorg/hibernate/proxy/EntityNotFoundDelegate;)V
  I Depend On:
    jboss.jca:service=DataSourceBinding,name=DefaultDS


Даже ограничиваясь файлом persistence.xml:
Код

<?xml version="1.0" encoding="UTF-8"?>
<persistence>

</persistence>


Ошибка повторяется. Подскажите пожалуйста, что это может быть.

Автор: powerOn 25.9.2007, 22:26
Вероятно где-то подгружается старая библиотека, в которой класс org.hibernate.cfg.AnnotationConfiguration не имеет метода setEntityNotFoundDelegate. Нужно найти что за это либа, и заменить её на более новую, где данный метод у данного класса существует.

Автор: Technology 27.9.2007, 13:34
Спасибо. Причина оказалась именно в этом. Почему то туда Hibernate закрался версии 3.1, а аннотации 3.2

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)