我使用Axis2 XMLBeans(版本1.6.2)创建了一个连接某些CRM Dynamics Web服务的客户端。当我将它作为独立项目启动时,客户端工作得非常好,但是当我将它集成到项目的maven结构中并尝试使用该服务时,我收到以下错误:
错误[http-bio-8080-exec-13] [render_portlet_jsp:154] java.lang.ClassFormatError:不兼容的魔法值4022320623 in 类文件 schemaorg_apache_xmlbeans /系统/ sC40263DCBC25A143E59FC252DB52E714 / TypeSystemHolder 在java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)at java.lang.ClassLoader.defineClass(ClassLoader.java:616)at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) 在 org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2889) 在 org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1170) 在 org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1678) 在 org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1556) 在 org.apache.xmlbeans.XmlBeans.typeSystemForClassLoader(XmlBeans.java:769) 在 com.microsoft.schemas.crm._2007.webservices.RetrieveDocument。(RetrieveDocument.java:19) 在 com.microsoft.schemas.crm._2007.webservices.RetrieveDocument $ Factory.newInstance(RetrieveDocument.java:147)
我创建了Axis代码,他使用以下插件通过Maven提供错误:
<plugins>
<plugin>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-wsdl2code-maven-plugin</artifactId>
<version>1.6.2</version>
<executions>
<execution>
<goals>
<goal>wsdl2code</goal>
</goals>
<configuration>
<packageName>myPackage</packageName>
<wsdlFile>src/main/resources/CrmService.wsdl</wsdlFile>
<databindingName>xmlbeans</databindingName>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
知道发生了什么事吗?该错误通常表明该类已损坏,但我已生成多次(并且使用不同版本的Axis2),结果是相同的......
答案 0 :(得分:0)
找到解决方案。为了将生成的类包含到jar中,我添加了以下行:
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
<resource>
<directory>target/generated-sources/axis2/wsdl2code/resources</directory>
<filtering>true</filtering>
</resource>
<resource>
<directory>target/generated-sources/axis2/wsdl2code/src</directory>
<filtering>true</filtering>
</resource>
</resources>
将资源目录的过滤更改为false后,问题就会消失。