ClassFormatError: Absent Code attribute in method, die ist nicht native oder abstract in class file javax/Transaktion/SystemException
Ich versuche, Arquillian gegen weblogic 12C.
Lege ich die folgende Konfiguration in meinem pom.xml
<dependency>
<groupId>org.jboss.arquillian.junit</groupId>
<artifactId>arquillian-junit-container</artifactId>
<version>1.0.0.CR7</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jboss.arquillian.protocol</groupId>
<artifactId>arquillian-protocol-servlet</artifactId>
<version>1.0.0.CR7</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jboss.shrinkwrap.resolver</groupId>
<artifactId>shrinkwrap-resolver-impl-maven</artifactId>
<version>1.0.0-beta-5</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jboss.arquillian.container</groupId>
<artifactId>arquillian-wls-remote-12.1</artifactId>
<version>1.0.0.Alpha2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>weblogic</groupId>
<artifactId>wlfullclient</artifactId>
<version>12.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.jboss.spec</groupId>
<artifactId>jboss-javaee-6.0</artifactId>
<version>3.0.0.Final</version>
<scope>test</scope>
</dependency>
Dann konfigurierte ich die arquillian.xml Datei wie folgt :
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<arquillian xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://jboss.org.schema/arquillian"
xsi:schemaLocation="http://jboss.org/schema/arquillian http://jboss.org/schema/arquillian/arquillian_1_0.xsd">
<container qualifier="weblogic" default="true">
<configuration>
<protocol type="Servlet 3.0">
<property name="executionType">REMOTE</property>
</protocol>
<property name="adminUrl">t3://localhost:7001</property>
<property name="adminUserName">weblogic</property>
<property name="adminPassword">weblogic1</property>
<property name="target">AdminServer</property>
<property name="wlsHome">c:\java\servers\wls12c\wlserver</property>
</configuration>
</container>
</arquillian>
Schließlich habe ich versucht zu "erstellen" ein Archiv mit Arquillian :
JavaArchive ejbArchive = ShrinkWrap.create(JavaArchive.class,"jee6app-ejb.jar").addAsResource("META-INF/persistence.xml","META-INF/persistence.xml").addPackages(false,Adr.class.getPackage(),Service.class.getPackage());
EnterpriseArchive earArchive = ShrinkWrap.create(EnterpriseArchive.class, "jee6app.ear").addAsModule(ejbArchive).addAsLibraries(
new File("target/test-libs/validation-api.jar"),
new File("target/test-libs/hibernate-entitymanager.jar"),
new File("target/test-libs/hibernate-validator.jar"),
new File("target/test-libs/javassist.jar"),
new File("target/test-libs/asm.jar"),
new File("target/test-libs/cglib.jar"),
new File("target/test-libs/hibernate-jpa.jar"),
new File("target/test-libs/hibernate-commons-annotations.jar"),
new File("target/test-libs/hibernate-annotations.jar"),
new File("target/test-libs/slf4j-api.jar"),
new File("target/test-libs/jta.jar"),
new File("target/test-libs/dom4j.jar"),
new File("target/test-libs/commons-collections.jar"),
new File("target/test-libs/antlr.jar"),
new File("target/test-libs/hibernate-core.jar")
);
return earArchive;
So, nachdem alle diese Dinge, ich habe immer die folgende Fehlermeldung :
Exception in thread "main" java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file javax/transaction/SystemException
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
Was ist falsch an meiner Konfiguration? Wie Sie sehen können, bevor ich versuchte, fügen Sie dem Klassenpfad der wlfullclient Glas-und jboss-api-jar -
Dank im Voraus für Eure Hilfe
Hinsichtlich
Haben Sie versucht, mit Arquillian Core 1.0.3.Finale oder 1.0.1.Finale? CR7 ist sehr alt.
Ich habe versucht, in diesen Versionen, und ich habe das gleiche Verhalten
Können Sie sehen, wenn Sie ziehen in der Oracle veröffentlicht
Ja, in der Tat ich benutze die javaee6-api Artefakt. Nach dem Auffinden alle rund um das web, sah ich, dass dieser Artefakt ist ok für builds, aber unbrauchbar für die Laufzeit wie arquillian tests oder einfache junit-tests.
Ja, Sie müssen ausschließen, dass ein Artefakt für Ihre tests.
Ich habe versucht, in diesen Versionen, und ich habe das gleiche Verhalten
Können Sie sehen, wenn Sie ziehen in der Oracle veröffentlicht
javaee-api
Artefakt durch Zufall? mvn dependency:tree
würde hier helfen. Sie müssen angeben, der Maven-profile, wenn Sie diejenigen, die eine Aktivierung nötig.Ja, in der Tat ich benutze die javaee6-api Artefakt. Nach dem Auffinden alle rund um das web, sah ich, dass dieser Artefakt ist ok für builds, aber unbrauchbar für die Laufzeit wie arquillian tests oder einfache junit-tests.
Ja, Sie müssen ausschließen, dass ein Artefakt für Ihre tests.
InformationsquelleAutor Alexandre T | 2013-03-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sehen, Sie ziehen in den
javaee-api
Artefakt in Ihrem test-Bereich, möchten Sie vielleicht, um die JBoss bereitgestellten APIsSehen das Arquillian-FAQ für mehr details.
Oder, im Fall von WLS, die Sie verlassen konnte auf die
wlfullclient.jar
um den erforderlichen Klassen. Sie müssen installieren Sie es in ein Maven-repo (vielleicht in eine Organisation-Breite), und klicken Sie dann verweisen Sie in Ihrem Projekt.InformationsquelleAutor Vineet Reynolds
Ich hatte ähnliche Fehler mit JBoss 7.1 und 6.1 eap mit remote-EJB-Aufruf, auf die Klasse Datei
javax/ejb/EJBException
Und das problem gelöst Wechsel von
zu
Vielleicht sollte das helfen ?
BR
InformationsquelleAutor skay