WebLogic 12C에 대해 Arquillian을 사용하려고합니다. ClassFormatError : 클래스 파일 javax/transaction/SystemException에 네이티브 또는 추상 메소드가 아닌 메소드의 코드 속성이 없습니다.
<?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>
마지막으로 내가 가진 아카이브를 "만드는"시도 :
내가
<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>
그럼 내 pom.xml 파일에 다음과 같은 구성을 넣어, 나는 다음과 같이 arquillian.xml 파일을 구성 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;
그래서, 그 일의 결국, 나는 항상 다음과 같은 오류가 :
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)
구성에 어떤 문제가 있습니까? 이전에 볼 수 있듯이, 나는 당신에 javaee-api
유물 당기는 있다는 것을 당신의 도움이
감사
Arquillian Core 1.0.3.Final 또는 1.0.1.Final을 사용해 보셨습니까? CR7은 아주 오래되었습니다. –
나는 그 릴리스를 시험해 보았고 나는 같은 행동을 취했다. –
혹시 오라클이'javaee-api' 아티팩트를 풀어 냈는지 알 수 있겠습니까? 'mvn dependency : tree'는 여기서 도움이 될 것입니다. 활성화가 필요한 프로파일을 사용하는 경우 Maven 프로파일을 지정해야합니다. –