"java.lang.IllegalArgumentException: argument type mismatch" when an invalid
xsi:type is specified in soap request.
-------------------------------------------------------------------------------------------------------------------
Key: XFIRE-753
URL: http://jira.codehaus.org/browse/XFIRE-753
Project: XFire
Issue Type: Bug
Components: Aegis Module
Affects Versions: 1.2.2
Environment: Linux, XFire 1.2.2
Reporter: Karthikeyan M.
Assigned To: Dan Diephouse
* This seems to be a regression in 1.2.2 compared to 1.1 - previous version of
xfire I used.
* Perl clients generate xsi:type for each element even though wsdl is marked to
be document, literal, wrapped style.
* Perl clients sometimes generate wrong xsi:type than the one specified in the
wsdl (due to auto detection of types based on value). Ex: "1234" will have an
xsi:type as xsi:int, even though it is specified as string in the wsdl.
* In the 1.2.2, xfire translates the value into java object type specified in
the request element, instead of the type specified in the service interface
even though the type in the request is wrong.
Ex:
wsdl snippet:
<xsd:element name="AccountID">
<xsd:simpleType>
<xsd:restriction base="xsd:string"/>
</xsd:simpleType>
</xsd:element>
request snippet:
<AccountID xsi:type="xsd:int">794683</AccountID>
* This results in:
java.lang.IllegalArgumentException: argument type mismatch
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at
org.codehaus.xfire.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:54)
at
org.codehaus.xfire.service.binding.ServiceInvocationHandler.sendMessage(ServiceInvocationHandler.java:271)
at
org.codehaus.xfire.service.binding.ServiceInvocationHandler$1.run(ServiceInvocationHandler.java:84)
at
org.codehaus.xfire.service.binding.ServiceInvocationHandler.execute(ServiceInvocationHandler.java:132)
at
org.codehaus.xfire.service.binding.ServiceInvocationHandler.invoke(ServiceInvocationHandler.java:107)
at
org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131)
at
org.codehaus.xfire.transport.DefaultEndpoint.onReceive(DefaultEndpoint.java:64)
at
org.codehaus.xfire.transport.AbstractChannel.receive(AbstractChannel.java:38)
at
org.codehaus.xfire.transport.http.XFireServletController.invoke(XFireServletController.java:301)
at
org.codehaus.xfire.transport.http.XFireServletController.doService(XFireServletController.java:130)
at
org.codehaus.xfire.transport.http.XFireServlet.doPost(XFireServlet.java:116)
* Behaviour in 1.1 in the correct one, where the types specified in the request
are ignored for document literal wrapped style. The correct type is the one
specified in the service interface.
This issue is similar to bug http://jira.codehaus.org/browse/XFIRE-647, which
is marked to be fixed in 1.2.2
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe from this list please visit:
http://xircles.codehaus.org/manage_email