在将Java EE 6 API作为提供的范围的依赖项的Maven项目中的测试中尝试使用SOAP时,我发现问题。使用具有Java EE 6依赖性的SOAP的Maven测试问题
重要事实
- 我知道,the API is unusable for testing
- 我知道我应该导入任何规范的实现,如果我想使用它
- SOAP is part of Java SE,不EE
- SOAP (模拟)类包括在the Maven artifact,我相信他们不应该
- 这发生在Jav一个EE 6,但those classes have been removed in version 7
- 如果我删除的依赖,测试做工精细
- 当使用7.0版本的API的一切工作
异常
java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file javax/xml/messaging/URLEndpoint
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:455)
at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:367)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at com.sun.xml.internal.messaging.saaj.client.p2p.HttpSOAPConnection.call(HttpSOAPConnection.java:102)
at somecompany.someproject.service.SomeBean.someMethod(SomeBean.java:##)
at somecompany.someproject.service.SomeBeanTest.testSomeMethod(SomeBeanTest.java:##)
POM配置
<dependencies>
...
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>6.0</version>
<scope>provided</scope>
</dependency>
...
</dependencies>
<build>
...
<plugins>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.17</version>
...
</plugin>
...
</plugins>
...
</build>
未能解决
我尝试了好几种解决方案(没有要发布各一个清晰,但是会被要求张贴):
- 我在Maven和没有尝试过每一个
<scope/>
禁用测试库 - 此外,试图排除库作为插件的依赖
- 包括rj.jar与比JavaEE的-API一个更高优先级的系统的依赖也没有工作,要么
不需要解决方法
我使用7.0依赖工作的测试,但根据政策,这是不可接受的,所以我需要解决这个问题。
这是好奇我怎么发现我自己的解决方案在10分钟内几个小时的奋力寻求解决方案之后,可能只是因为书面方式下的问题,使我的头把一切都各就各位。 – 2014-09-26 08:34:10