[ 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