0

我使用 Axis2 XMLBeans(版本 1.6.2)创建了一个客户端来连接一些 CRM Dynamics Web 服务。当我将客户端作为独立项目启动时,它工作得非常好,但是当我将它集成到项目的 maven 结构中并尝试使用该服务时,我收到以下错误:

错误 [http-bio-8080-exec-13][render_portlet_jsp:154] java.lang.ClassFormatError:类文件 schemaorg_apache_xmlbeans/system/sC40263DCBC25A143E59FC252DB52E714/TypeSystemHolder 中的不兼容魔法值 4022320623 在 java.lang.ClassLoader.defineClassCond(ClassLoader.java: 632) 在 java.lang.ClassLoader.defineClass(ClassLoader.java:616) 在 java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) 在 org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2889) ) 在 org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1678) 在 org.apache.catalina.loader.WebappClassLoader 的 org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1170)。 loadClass(WebappClassLoader.java:1556) 在 org.apache.xmlbeans.XmlBeans。typeSystemForClassLoader(XmlBeans.java:769) at com.microsoft.schemas.crm._2007.webservices.RetrieveDocument.(RetrieveDocument.java:19) at com.microsoft.schemas.crm._2007.webservices.RetrieveDocument$Factory.newInstance(RetrieveDocument .java:147)

我已经使用以下插件创建了通过 Maven 给出错误的 Axis 代码:

<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)并且结果是相同的......

4

1 回答 1

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

于 2013-08-27T15:35:47.813 回答