org.springframework.ws.server.endpoint.MethodEndpoint.invoke() 方法抛出 IllegalArgumentException:参数类型不匹配
org.springframework.ws.server.endpoint.MethodEndpoint.invoke() method throws IllegalArgumentException : argument type mismatch
我正在尝试将现有的 spring Web 服务迁移到 jdk 1.8,Webphere 9 从当前版本 jdk 是 1.6 和 websphere 6。我的 Web 服务按预期工作 jdk 1.6 和 websphere 6.
org.springframework.ws.server.endpoint.MethodEndpoint.invoke() 调用了正确的方法,但该方法是使用参数 org.apache.xmlbeans.impl.values.XmlComplexContentImpl 而不是扩展 XmlComplexContentImpl class 的 XXXRequestDocumentImpl 调用的。
控制台错误:
[err] java.lang.IllegalArgumentException: argument type mismatch
[err] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[err] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:95)
[err] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
[err] at java.lang.reflect.Method.invoke(Method.java:508)
[err] at org.springframework.ws.server.endpoint.MethodEndpoint.invoke(MethodEndpoint.java:115)
肥皂错误 UI
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode>SOAP-ENV:Client</faultcode>
<faultstring xml:lang="en">Invalid request</faultstring>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
使用 Jdk 1.8 和 xmlbeans 2.6.0 我遇到了上述错误
根本原因是 xmlbeans-maven-plugin 中缺少 xmlConfig 标记。因为 xmlbeans-maven-plugin 没有在 \target\generated-classes\xmlbeans\schemaorg_apache_xmlbeans.
下生成文件夹 schemaorg_apache_xmlbeans
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>xmlbeans-maven-plugin</artifactId>
<version>2.3.2</version>
<executions>
<execution>
<goals>
<goal>xmlbeans</goal>
</goals>
</execution>
</executions>
<!--<inherited>true</inherited>-->
<configuration>
<schemaDirectory>${basedir}/src/main/resources/xsd</schemaDirectory>
<javaSource>1.8</javaSource>
<xmlConfigs>
<xmlConfig implementation="java.io.File">${basedir}/src/main/resources/xsdconfig/xxxxx.xsdconfig</xmlConfig>
</xmlConfigs>
</configuration>
</plugin>
我正在尝试将现有的 spring Web 服务迁移到 jdk 1.8,Webphere 9 从当前版本 jdk 是 1.6 和 websphere 6。我的 Web 服务按预期工作 jdk 1.6 和 websphere 6.
org.springframework.ws.server.endpoint.MethodEndpoint.invoke() 调用了正确的方法,但该方法是使用参数 org.apache.xmlbeans.impl.values.XmlComplexContentImpl 而不是扩展 XmlComplexContentImpl class 的 XXXRequestDocumentImpl 调用的。
控制台错误:
[err] java.lang.IllegalArgumentException: argument type mismatch
[err] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[err] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:95)
[err] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
[err] at java.lang.reflect.Method.invoke(Method.java:508)
[err] at org.springframework.ws.server.endpoint.MethodEndpoint.invoke(MethodEndpoint.java:115)
肥皂错误 UI
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode>SOAP-ENV:Client</faultcode>
<faultstring xml:lang="en">Invalid request</faultstring>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
使用 Jdk 1.8 和 xmlbeans 2.6.0 我遇到了上述错误 根本原因是 xmlbeans-maven-plugin 中缺少 xmlConfig 标记。因为 xmlbeans-maven-plugin 没有在 \target\generated-classes\xmlbeans\schemaorg_apache_xmlbeans.
下生成文件夹 schemaorg_apache_xmlbeans <plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>xmlbeans-maven-plugin</artifactId>
<version>2.3.2</version>
<executions>
<execution>
<goals>
<goal>xmlbeans</goal>
</goals>
</execution>
</executions>
<!--<inherited>true</inherited>-->
<configuration>
<schemaDirectory>${basedir}/src/main/resources/xsd</schemaDirectory>
<javaSource>1.8</javaSource>
<xmlConfigs>
<xmlConfig implementation="java.io.File">${basedir}/src/main/resources/xsdconfig/xxxxx.xsdconfig</xmlConfig>
</xmlConfigs>
</configuration>
</plugin>