尝试使用服务时Axis2 + maven ClassFormatError

时间:2013-08-22 15:34:07

标签: web-services maven axis

我使用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),结果是相同的......

1 个答案:

答案 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后,问题就会消失。