2017-03-28 1 views
0

Ich versuche mein Projekt von JSF1.2, Hibernate 3.x, Jboss 4.3 auf JSF 2.1, Hibernate 4.x und Jboss EAP 6.3 zu migrieren. Während des Startens, erhalte ich eine Fehlermeldung, dass `Jboss 7 Hibernate Modul findet keine Persistenz Xml Klassen

10:46:35,776 ERROR [org.jboss.msc.service.fail] (ServerService Thread Pool -- 48) MSC000001: Failed to start service jboss.persistenceunit."MyEAR.ear#myJPA": org.jboss.msc.service.StartException in service jboss.persistenceunit."MyEAR.ear#myJPA": javax.persistence.PersistenceException: [PersistenceUnit: myJPA] class or package not found 
    at org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1.run(PersistenceUnitServiceImpl.java:103) [jboss-as-jpa-7.4.0.Final-redhat-19.jar:7.4.0.Final-redhat-19] 
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) [rt.jar:1.6.0_45] 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) [rt.jar:1.6.0_45] 
    at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_45] 
    at org.jboss.threads.JBossThread.run(JBossThread.java:122) [jboss-threads-2.1.1.Final-redhat-1.jar:2.1.1.Final-redhat-1] 
Caused by: javax.persistence.PersistenceException: [PersistenceUnit: myJPA] class or package not found 
    at org.hibernate.ejb.Ejb3Configuration.addNamedAnnotatedClasses(Ejb3Configuration.java:1410) 
    at org.hibernate.ejb.Ejb3Configuration.addClassesToSessionFactory(Ejb3Configuration.java:1193) 
    at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:1057) 
    at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:702) 
    at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:75) 
    at org.jboss.as.jpa.service.PersistenceUnitServiceImpl.createContainerEntityManagerFactory(PersistenceUnitServiceImpl.java:200) [jboss-as-jpa-7.4.0.Final-redhat-19.jar:7.4.0.Final-redhat-19] 
    at org.jboss.as.jpa.service.PersistenceUnitServiceImpl.access$600(PersistenceUnitServiceImpl.java:57) [jboss-as-jpa-7.4.0.Final-redhat-19.jar:7.4.0.Final-redhat-19] 
    at org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1.run(PersistenceUnitServiceImpl.java:99) [jboss-as-jpa-7.4.0.Final-redhat-19.jar:7.4.0.Final-redhat-19] 
    ... 4 more 
Caused by: java.lang.ClassNotFoundException: 
     com.xxx.persistence.Agent from [Module "org.hibernate:main" from local module loader @26a3960 (finder: local module finder @bdccedd (roots: C:\JbossEAP6.3\jboss-eap-6.3\modules,C:\JbossEAP6.3\jboss-eap-6.3\modules\system\layers\base))] 
    at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:213) [jboss-modules.jar:1.3.3.Final-redhat-1] 
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:459) [jboss-modules.jar:1.3.3.Final-redhat-1] 
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:447) [jboss-modules.jar:1.3.3.Final-redhat-1] 
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:414) [jboss-modules.jar:1.3.3.Final-redhat-1] 
    at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:389) [jboss-modules.jar:1.3.3.Final-redhat-1] 
    at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:134) [jboss-modules.jar:1.3.3.Final-redhat-1] 
    at java.lang.Class.forName0(Native Method) [rt.jar:1.6.0_45] 
    at java.lang.Class.forName(Class.java:249) [rt.jar:1.6.0_45] 
    at org.hibernate.internal.util.ReflectHelper.classForName(ReflectHelper.java:170) 
    at org.hibernate.ejb.Ejb3Configuration.classForName(Ejb3Configuration.java:1327) 
    at org.hibernate.ejb.Ejb3Configuration.addNamedAnnotatedClasses(Ejb3Configuration.java:1399) 
    ... 11 more 

`

Meine EAR Struktur als unten.

  • MyEAR.ear
  • MyWAR.war (Persistenzeinheit myJPA ist in Web-inf/classes/meta-inf)
  • MyEJB.jar (Persistenzeinheit myJPA vorhanden ist, in META-INF)
  • lib/MyJPA.jar (Persistenzeinheit myJPA ist in META-INF)
  • META-INF

My jboss-Entfaltungs-structure.xml als unten. `

<jboss-deployment-structure> 
    <deployment> 
     <dependencies> 
      <module name="deployment.MyJPA" /> 
     </dependencies> 
     <resources> 
      <resource-root path="MyJPA.jar" /> 
     </resources> 
    </deployment> 
    <sub-deployment name="MyWAR.war"> 
     <dependencies> 
      <module name="deployment.MyEAR.ear.MyEJB.jar" /> 
      <module name="deployment.MyJPA" /> 
     </dependencies> 
    </sub-deployment> 
    <sub-deployment name="MyEJB.jar"> 
     <dependencies> 
      <module name="deployment.MyJPA" /> 
     </dependencies> 
    </sub-deployment> 
    <module name="deployment.MyJPA" > 
     <resources> 
      <resource-root path="lib/MyJPA.jar"/> 
     </resources> 
    </module> 
</jboss-deployment-structure> 

` Ich bin neu in Jboss 7, so lass es mich wissen, wenn mein Setup nicht korrekt ist.

Antwort

0

Also nach viel herum Graben und Lesen über die Migration, stellt sich heraus, dass Winterschlaf gebündelt mit Jboss konnte meine persistence.xml nicht richtig lesen. Meine Persistenz-XML hatte Klassen geschrieben mit Wagenrücklauf wie unten.

Ich glaube, dass der Hibernate die Newline/Carriage-Rückgabe in den Klassennamen enthalten und daher nicht finden. Es funktionierte gut in der vorherigen Ruhezustand 3. Während ich verstehe, dass meine Formatierung nicht korrekt war, würde ich erwarten, dass Hibernate trimmen und die Klassennamen verwenden. Wie auch immer, mein Problem ist gelöst und hoffentlich findet das jemand hilfreich.

Verwandte Themen