On 05/12/12 07:49, Eric Chow wrote:
Furthermore, I tried to use Metro's WSDL2JAVA to generate the client stub,
everything is fine.
Is there any bug on the WSDL2Java(Apache CXF-2.7.0) ?
I recall a user reporting a similar issue before. Last time it was to do
with HttpConduit detecting a redirection request to the address having
the same base URI as in the original address.
Can you please register a cxf log feature and check what is returned to
the client ?
Sergey
Eric
On Wed, Dec 5, 2012 at 3:12 PM, Eric Chow<[email protected]> wrote:
Hello,
It's my first time to use ApachCXF-2.7.0.
I got some strange exception "HTTP response '400: Multi-Hop Cycle
Detected'" but I don't know why I got this?
2012/12/5 下午 03:07:03 org.apache.cxf.phase.PhaseInterceptorChain
doDefaultLogging
Warn: Interceptor for {
http://service.test/}MyServiceService#{http://service.test/}echo has
thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: Could not send Message.
at
org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:64)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:271)
at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:531)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:464)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:367)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:320)
at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:89)
at
org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:134)
at $Proxy28.echo(Unknown Source)
at test.service.TestWS.main(TestWS.java:37)
Caused by: org.apache.cxf.transport.http.HTTPException: HTTP response
'400: Multi-Hop Cycle Detected' when communicating with
http://localhost:8080/TestCXF/myservice
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1529)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1489)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1308)
at
org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
at
org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:623)
at
org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
... 9 more
javax.xml.ws.WebServiceException: Could not send Message.
at
org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:145)
at $Proxy28.echo(Unknown Source)
at test.service.TestWS.main(TestWS.java:37)
Caused by: org.apache.cxf.transport.http.HTTPException: HTTP response
'400: Multi-Hop Cycle Detected' when communicating with
http://localhost:8080/TestCXF/myservice
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1529)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1489)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1308)
at
org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
at
org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:623)
at
org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:271)
at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:531)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:464)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:367)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:320)
at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:89)
at
org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:134)
... 2 more
The following is my code.
MyServiceService port = new MyServiceService(new URL(SERVICE_URL),
SERVICE_NAME);
MyService service = port.getMyServicePort();
service.echo("Hello World");
service.echo("Hello World again");
I found that if I use the service to call more than one time, it will
raise that exception. I mean if I only call the "service.echo(....)" once.
No exception at all.
What's wrong with it? I tried Metro and Axis2 before, it allows call multi
times with one port.
Any idea on it? Or I need to add some special configurations for that?
Please help!!!
Best regards,
Eric