Unwrapped responses with 2 or more elements and -exsh throws exception on
request
---------------------------------------------------------------------------------
Key: CXF-2998
URL: https://issues.apache.org/jira/browse/CXF-2998
Project: CXF
Issue Type: Bug
Affects Versions: 2.2.10, 2.3
Environment: CXF 2.3-SNAPSHOT (2.2.10 also tested with identical
results) running inside of a Jetty 6 container on Ubuntu Linux 10.10.
Reporter: Justin Lindh
Fix For: 2.3, 2.2.11
This JIRA incident was created by suggestion from the Nabble CXF Forums in the
following thread:
http://cxf.547215.n5.nabble.com/Problem-with-unwrapped-responses-containing-multiple-elements-td2841497.html#a2841497
Essentially, if a message is unwrapped and contains multiple response elements,
a valid XML request will trigger the following exception in the server:
Sep 16, 2010 12:15:44 PM org.apache.cxf.phase.PhaseInterceptorChain
doDefaultLogging
WARNING: Application
{urn:wsdl.test.cxf.com}WSTestService#{urn:wsdl.test.cxf.com}Test has thrown
exception, unwinding now
org.apache.cxf.interceptor.Fault: wrong number of arguments while invoking
public void
com.cxf.test.wsdl.WSTestPortTypeImpl.test(com.cxf.test.messages.ClientInfoHeader,javax.xml.ws.Holder,javax.xml.ws.Holder)
with params [].
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:60)
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:244)
at
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:110)
at
org.apache.cxf.transport.http_jetty.JettyHTTPDestination.serviceRequest(JettyHTTPDestination.java:311)
at
org.apache.cxf.transport.http_jetty.JettyHTTPDestination.doService(JettyHTTPDestination.java:275)
at
org.apache.cxf.transport.http_jetty.JettyHTTPHandler.handle(JettyHTTPHandler.java:70)
at
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
at
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
at
org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
at org.mortbay.jetty.handler.HandlerList.handle(HandlerList.java:49)
at
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:326)
at
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
at
org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:943)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.IllegalArgumentException: wrong number of arguments
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)
... 28 more
CXF fails to find the matching function prototype for the corresponding request
in this case. Note that this does work as expected if the "-exsh" switch isn't
used; extracting SOAP headers seems to affect whether CXF will properly route
the request or not.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.