[
https://issues.apache.org/jira/browse/CXF-1019?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12527425
]
Jeff Yu commented on CXF-1019:
------------------------------
The cause for this error is:
The ServiceModel build from WSDL doesn't match the ServiceModel build from
Class SEI. The reason for this is that in BuildServiceFromClass, we always set
the "return" object at the 0-index output message part.
The criteria for collocated binding is that those two serviceModel should be
matched. I think we at least need to document that need to put the return
object in the 1st output message part somewhere if we don't change the
convention, which is we always set the "return object" as first output message.
> "Collocated Invocation should have been detected." error in the coloc-binding
> -----------------------------------------------------------------------------
>
> Key: CXF-1019
> URL: https://issues.apache.org/jira/browse/CXF-1019
> Project: CXF
> Issue Type: Bug
> Components: JAX-WS Runtime
> Affects Versions: 2.0.1
> Environment: windows
> Reporter: Jeff Yu
> Fix For: 2.1
>
>
> How to reproduce:
> 1. Update the "/wsdl/header_doc_lit.wsdl" in cxf-testutils.module as
> following.
> Change the "
> <message name="inoutHeaderResponse">
> <part element="x1:inoutHeaderResponse" name="inout"/>
> <part element="x1:header" name="header"/>
> </message>
> "
> TO
> "
> <message name="inoutHeaderResponse">
> <part element="x1:header" name="header"/>
> <part element="x1:inoutHeaderResponse" name="inout"/>
> </message>
> "
> 2. run the "ColocHeaderDocLitTest" in the cxf-systest module. and then you
> will get the error stack as follow:
> ------------------------------------------
> javax.xml.ws.ProtocolException: Collocated Invocation should have been
> detected.
> at
> org.apache.cxf.systest.coloc.ThrowFaultInterceptor.handleMessage(ThrowFaultInterceptor.java:36)
> at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
> at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
> at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
> at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
> at
> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
> at $Proxy49.inoutHeader(Unknown Source)
> at
> org.apache.cxf.systest.coloc.AbstractHeaderServiceDocLitTest.verifyInOutHeaderParts(AbstractHeaderServiceDocLitTest.java:124)
> at
> org.apache.cxf.systest.coloc.AbstractHeaderServiceDocLitTest.testAll(AbstractHeaderServiceDocLitTest.java:95)
> 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.junit.internal.runners.TestMethodRunner.executeMethodBody(TestMethodRunner.java:99)
> at
> org.junit.internal.runners.TestMethodRunner.runUnprotected(TestMethodRunner.java:81)
> at
> org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
> at
> org.junit.internal.runners.TestMethodRunner.runMethod(TestMethodRunner.java:75)
> at
> org.junit.internal.runners.TestMethodRunner.run(TestMethodRunner.java:45)
> at
> org.junit.internal.runners.TestClassMethodsRunner.invokeTestMethod(TestClassMethodsRunner.java:66)
> at
> org.junit.internal.runners.TestClassMethodsRunner.run(TestClassMethodsRunner.java:35)
> at
> org.junit.internal.runners.TestClassRunner$1.runUnprotected(TestClassRunner.java:42)
> at
> org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
> at
> org.junit.internal.runners.TestClassRunner.run(TestClassRunner.java:52)
> at
> org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:38)
> at
> org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.