[ https://issues.apache.org/jira/browse/CXF-8796?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Daniel Kulp updated CXF-8796: ----------------------------- Fix Version/s: 3.5.5 3.4.10 > IllegalArgumentException: argument type mismatch with code first RPC when > parameter omitted > ------------------------------------------------------------------------------------------- > > Key: CXF-8796 > URL: https://issues.apache.org/jira/browse/CXF-8796 > Project: CXF > Issue Type: Bug > Components: Soap Binding > Affects Versions: 3.5.4 > Reporter: Alexander Ziubin > Priority: Major > Fix For: 3.5.5, 3.4.10 > > Attachments: RpcSoapBindingArgumentTypeMismatch.zip, allocate.xml > > > When migrating legacy code-first RPC Web application from Axis to CXF, I > found an issue with SOAP binding. CXF is passing > MessageContentsList.REMOVED_MARKER instead of absent parameter producing > "argument type mismatch while invoking ... with params ... java.lang.Object" > response faultstring and "java.lang.IllegalArgumentException: argument type > mismatch" message in the log. > {code:java} > @WebService(targetNamespace = "http://test.apache.org/") > @SOAPBinding(style = javax.jws.soap.SOAPBinding.Style.RPC, use = > javax.jws.soap.SOAPBinding.Use.LITERAL) > public class SoapBindingArgumentTypeMismatch { > public boolean allocate(Integer projectId, > Integer[] targetIds, > Integer[] parameterIds) { > return targetIds == null; > } > }{code} > Expected behavior of this sample Web service is to return true, when the > targetIds parameter is absent in the SOAP request, but instead, CXF produces > exception and fault response. Below is a sample SOAP request: > {code:xml} > <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" > xmlns:test="http://test.apache.org/" > xmlns:SOAP-ENC = "http://schemas.xmlsoap.org/soap/encoding/" > xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"> > <soapenv:Header/> > <soapenv:Body> > <test:allocate> > <arg0>1</arg0> > <arg2 xsi:type = "SOAP-ENC:Array" SOAP-ENC:arrayType = "xsd:int[1]"> > <item>222</item> > </arg2> > </test:allocate> > </soapenv:Body> > </soapenv:Envelope>{code} > Everything else works as expected with CXF and this issue is the only > blocker. I did some research and found that bean validation is also affected > for both hibernate-validator and Apache bval bean validation providers. > I verified the behavior with CXF 3.5.2 and 3.5.4, but it seems that other > versions have this issue too. -- This message was sent by Atlassian Jira (v8.20.10#820010)