2016-04-18 9 views
0

Ich versuche, eine Anwendung mit Eclipse-Link als jpa-Provider auf jbosss eap 6.3 zu implementieren, aber es scheint ein Problem zwischen EclipseLink und jboss, weil ich einen Stackoverflow-Fehler beim Bereitstellenstackoverflow bei der Integration von eclipselink mit jboss eap 6

Failed to define class org.eclipse.persistence.internal.weaving.WeaverLogger in Module "deployment.test-service.war:main" from Service Module Loader: java.lang.StackOverflowError 
    at java.security.AccessController.doPrivileged(Native Method) [rt.jar:1.8.0_74] 
    at org.jboss.as.server.deployment.module.VFSResourceLoader.getClassSpec(VFSResourceLoader.java:131) [jboss-as-server-7.4.1.Final-redhat-3.jar:7.4.1.Final-redhat-3] 
    at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:268) [jboss-modules.jar:1.3.4.Final-redhat-1] 
    at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:92) [jboss-modules.jar:1.3.4.Final-redhat-1] 
    at org.jboss.modules.Module.loadModuleClass(Module.java:568) [jboss-modules.jar:1.3.4.Final-redhat-1] 
    at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:205) [jboss-modules.jar:1.3.4.Final-redhat-1] 
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:459) [jboss-modules.jar:1.3.4.Final-redhat-1] 
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:408) [jboss-modules.jar:1.3.4.Final-redhat-1] 
    at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:389) [jboss-modules.jar:1.3.4.Final-redhat-1] 
    at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:134) [jboss-modules.jar:1.3.4.Final-redhat-1] 
    at org.eclipse.persistence.internal.jpa.weaving.PersistenceWeaver.transform(PersistenceWeaver.java:100) 
    at org.jboss.as.jpa.classloader.JPADelegatingClassFileTransformer.transform(JPADelegatingClassFileTransformer.java:48) [jboss-as-jpa-7.4.1.Final-redhat-3.jar:7.4.1.Final-redhat-3] 
    at org.jboss.as.server.deployment.module.DelegatingClassFileTransformer.transform(DelegatingClassFileTransformer.java:60) [jboss-as-server-7.4.1.Final-redhat-3.jar:7.4.1.Final-redhat-3] 
    at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:474) [jboss-modules.jar:1.3.4.Final-redhat-1] 
    at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:277) [jboss-modules.jar:1.3.4.Final-redhat-1] 
    at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:92) [jboss-modules.jar:1.3.4.Final-redhat-1] 
    at org.jboss.modules.Module.loadModuleClass(Module.java:568) [jboss-modules.jar:1.3.4.Final-redhat-1] 
    at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:205) [jboss-modules.jar:1.3.4.Final-redhat-1] 
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:459) [jboss-modules.jar:1.3.4.Final-redhat-1] 
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:408) [jboss-modules.jar:1.3.4.Final-redhat-1] 
    at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:389) [jboss-modules.jar:1.3.4.Final-redhat-1] 
    at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:134) [jboss-modules.jar:1.3.4.Final-redhat-1] 
    at org.eclipse.persistence.internal.jpa.weaving.PersistenceWeaver.transform(PersistenceWeaver.java:100) 

Muss ich eine Konfiguration zu jboss (standalone.xml) hinzufügen?

Es ist mein persistence.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="unit" transaction-type="RESOURCE_LOCAL"> 
    <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> 
     <exclude-unlisted-classes>false</exclude-unlisted-classes> 
     <properties> 

      <property name="javax.persistence.jdbc.driver" value="org.postgresql.Driver" /> 
      <property name="javax.persistence.jdbc.url" value="jdbc:postgresql://*****" /> 
      <property name="javax.persistence.jdbc.user" value="*****" /> 
      <property name="javax.persistence.jdbc.password" value="****" /> 

      <!-- EclipseLink should create the database schema automatically --> 
      <property name="eclipselink.ddl-generation" value="create-tables" /> 
      <property name="eclipselink.ddl-generation.output-mode" value="database" /> 
      <property name="eclipselink.logging.level" value="SEVERE"/>     
     </properties> 

    </persistence-unit> 
</persistence> 

Mein pom.xml (dieses Projekt wird eine Abhängigkeit von anderen sein)

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
     <modelVersion>4.0.0</modelVersion> 
     <parent> 
      <groupId>com.maventest</groupId> 
      <artifactId>test-app</artifactId> 
      <version>0.0.1-SNAPSHOT</version> 
      <relativePath>../test-app</relativePath> 
     </parent> 
     <artifactId>test-repository</artifactId> 
     <packaging>jar</packaging> 

     <dependencies> 
      <dependency> 
       <groupId>log4j</groupId> 
       <artifactId>apache-log4j-extras</artifactId> 
       <version>1.2.17</version> 
      </dependency> 
      <dependency> 
       <groupId>org.eclipse.persistence</groupId> 
       <artifactId>org.eclipse.persistence.jpa</artifactId> 
       <version>2.6.2</version> 
      </dependency> 
      <dependency> 
       <groupId>javax.transaction</groupId> 
       <artifactId>jta</artifactId> 
       <version>1.1</version> 
      </dependency> 
      <dependency> 
       <groupId>postgresql</groupId> 
       <artifactId>postgresql</artifactId> 
       <version>9.1-901-1.jdbc4</version> 
      </dependency> 

     </dependencies> 
    </project> 

Irgendwelche Hinweise geschätzt wird Vielen Dank

+0

Es ist nicht klar, wie viel Stack Sie für Ihre JVM zur Verfügung haben, da es nur 1 Zeile von Eclipse Code im Fehler-Stack ist. Versuchen Sie, den Speicher für Ihren Container erweitern, oder Sie können Ihre Anwendung im Voraus statisch https://wiki.eclipse.org/EclipseLink/UserGuide/JPA/Advanced_JPA_Development/Performance/Weaving/Static_Weaving – Chris

+1

Es weben könnte auch auf andere stackoverlow Ausnahmen bezogen werden veröffentlicht auf jboss/Wildfly: http://stackoverflow.com/questions/22983164/cant-deploy-java-ee-application-to-wildfly und http://stackoverflow.com/questions/22983164/cant-deploy-java-ee- Application-to-Wildfly Es könnte auch zu https://developer.jboss.org/thread/237357?start=0&tstart=0&_sscc=t in Beziehung gesetzt werden, die das eclipselink.archive.factory System zeigt an Eigenschaft festgelegt werden muss, wie unter https beschrieben : //docs.jboss.org/author/display/WFLY8/JPA+Reference+Guide#JPAReferenceGuide-UsingEclipseLink – Chris

+0

@ Chris Vielen Dank Mann. Ihre Hilfe war wirklich wertvoll und wertvoll! – ulquiorra

Antwort

0

Dank Chris Antwort konnte ich durch die Integration von eclipse lin Jboss eap 6 und Eclipse laufen k Modul innerhalb jboss eap

Ich musste einen neuen Ordner erstellen: JBOSS_HOME \ modules \ org \ eclipse \ persistence \ main und kopieren Sie eclipselink.jar hinein. Dann musste ich die module.xml schaffen assoziiert

<?xml version="1.0" encoding="UTF-8"?> 
<module xmlns="urn:jboss:module:1.1" name="org.eclipse.persistence"> 
    <resources> 
     <resource-root path="eclipselink.jar" /> 
    </resources> 
    <dependencies> 
     <module name="javax.api" /> 
     <module name="javax.persistence.api" /> 
     <module name="javax.transaction.api" /> 
     <module name="javax.validation.api" /> 
     <module name="javax.xml.bind.api" /> 
     <module name="org.antlr" /> 
     <module name="org.apache.commons.collections" /> 
     <module name="org.dom4j" /> 
     <module name="org.javassist" /> 
     <module name="org.jboss.logging" /> 
    </dependencies> 
</module> 

komplett Tutorial: https://docs.jboss.org/author/display/WFLY8/JPA+Reference+Guide#JPAReferenceGuide-UsingEclipseLink und http://www.eclipse.org/eclipselink/documentation/2.5/solutions/jboss002.htm

Außerdem trotzt mein Server lief reibungslos danach, aber ich habe einen neuen Fehler, nachdem alle Daten persistierenden versuchen „Objekt nicht eine bekannte Entitätstyp“

Das Problem war, weil in der persistence.xml ich die Leitung hatte <exclude-unlisted-classes>false</exclude-unlisted-classes>

Es scheint, dass es ein Problem zwischen classloading Eclipse ein ist d Jboss eap

ich von <class> explizit Einheiten erklären benötigen Attribute

Verwandte Themen