[ 
https://issues.apache.org/jira/browse/CXF-4117?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Daniel Kulp resolved CXF-4117.
------------------------------

       Resolution: Fixed
    Fix Version/s: 2.5.3
                   2.4.7
                   2.3.10
         Assignee: Daniel Kulp
    
> Argument type mismatch when using Implicit Headers and @RequestWrapper with 
> Service from WSDL
> ---------------------------------------------------------------------------------------------
>
>                 Key: CXF-4117
>                 URL: https://issues.apache.org/jira/browse/CXF-4117
>             Project: CXF
>          Issue Type: Bug
>          Components: JAX-WS Runtime
>    Affects Versions: 2.5.2
>            Reporter: Andreas Gudian
>            Assignee: Daniel Kulp
>             Fix For: 2.3.10, 2.4.7, 2.5.3
>
>         Attachments: implicit-header-showcase.zip
>
>
> I started off with a WSDL defining an implicit soap header (in/out). In case 
> the code generator creates "un-wrapped" methods with @RequestWrapper / 
> @ResponseWrapper annotations, I get the following error when calling my 
> endpoint (which has the wsdlLocation attribute set):
> {code}
> WARNING: Application 
> {http://sample.com/ws}ImplicitHeaderSampleService#{http://sample.com/ws}SetStatus
>  has thrown exception, unwinding now
> org.apache.cxf.interceptor.Fault: argument type mismatch while invoking 
> public javax.xml.datatype.XMLGregorianCalendar 
> sample.ImplicitHeaderSampleTest$ImplicitH
> eaderSampleImplementation.setStatus(long,java.lang.String,javax.xml.ws.Holder)
>  throws com.sample.ws.InvalidArgumentFault with params [12345, status, 
> com.sample.
> audit.Audit@60029d].
>         at 
> org.apache.cxf.service.invoker.AbstractInvoker.createFault(AbstractInvoker.java:159)
>         at 
> org.apache.cxf.jaxws.AbstractJAXWSMethodInvoker.createFault(AbstractJAXWSMethodInvoker.java:86)
>         at 
> org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:133)
>         at 
> org.apache.cxf.jaxws.JAXWSMethodInvoker.invoke(JAXWSMethodInvoker.java:63)
>         at 
> org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:75)
>         at 
> org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58)
>         at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
>         at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
>         at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>         at 
> org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)
>         at 
> org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:106)
>         at 
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263)
>         at 
> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:123)
>         at 
> org.apache.cxf.transport.http_jetty.JettyHTTPDestination.serviceRequest(JettyHTTPDestination.java:323)
>         at 
> org.apache.cxf.transport.http_jetty.JettyHTTPDestination.doService(JettyHTTPDestination.java:289)
>         at 
> org.apache.cxf.transport.http_jetty.JettyHTTPHandler.handle(JettyHTTPHandler.java:72)
>         at 
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:943)
>         at 
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:879)
>         at 
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
>         at 
> org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:250)
>         at 
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:110)
>         at org.eclipse.jetty.server.Server.handle(Server.java:345)
>         at 
> org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:441)
>         at 
> org.eclipse.jetty.server.HttpConnection$RequestHandler.content(HttpConnection.java:936)
>         at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:801)
>         at 
> org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:224)
>         at 
> org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:51)
>         at 
> org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:586)
>         at 
> org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:44)
>         at 
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:598)
>         at 
> org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:533)
>         at java.lang.Thread.run(Thread.java:662)
> Caused by: 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:597)
>         at 
> org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:173)
>         at 
> org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:89)
>         ... 29 more
> {code}
> The error does not occour if I start my endoint without specifying the WSDL 
> location.
> I'll attach a sample that demonstrates the behaviour.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to