You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by Eric Chow <er...@gmail.com> on 2012/06/22 06:58:49 UTC

org.apache.cxf.transport.http.HTTPException: HTTP response '400: Multi-Hop Cycle Detected' when communicating with

Hello,

I am new to ApacheCXF. I got the following exception when using
JaxWsDynamicClientFactory.


2012/6/22 下午 12:45:58 org.apache.cxf.common.jaxb.JAXBUtils
logGeneratedClassNames
資訊: Created classes: test.service.Echo, test.service.EchoResponse,
test.service.Find, test.service.FindResponse, test.service.ObjectFactory,
test.service.User
EricAA,N/A
2012/6/22 下午 12:45:58 org.apache.cxf.phase.PhaseInterceptorChain
doDefaultLogging
警告: 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:262)
    at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:532)
    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.endpoint.ClientImpl.invoke(ClientImpl.java:340)
    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:326)
    at test.service.TestJaxWSDirect.main(TestJaxWSDirect.java:44)
Caused by: org.apache.cxf.transport.http.HTTPException: HTTP response '400:
Multi-Hop Cycle Detected' when communicating with
http://localhost:8080/TestCXF/services/myservice
    at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1592)
    at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1520)
    at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1428)
    at
org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
    at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:658)
    at
org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
    ... 8 more
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:262)
    at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:532)
    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.endpoint.ClientImpl.invoke(ClientImpl.java:340)
    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:326)
    at test.service.TestJaxWSDirect.main(TestJaxWSDirect.java:44)
Caused by: org.apache.cxf.transport.http.HTTPException: HTTP response '400:
Multi-Hop Cycle Detected' when communicating with
http://localhost:8080/TestCXF/services/myservice
    at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1592)
    at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1520)
    at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1428)
    at
org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
    at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:658)
    at
org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
    ... 8 more




try {
            JaxWsDynamicClientFactory dcf =
JaxWsDynamicClientFactory.newInstance();
            Client client1 = dcf.createClient("
http://localhost:8080/TestCXF/services/myservice?wsdl");
            Object[] obj1 = client1.invoke("find", new Object[] { "EricAA"
});


            Method m = obj1[0].getClass().getMethod("getName");
            String s = (String)m.invoke(obj1[0]);

            System.out.println(s);


            // the following part causes exception
            Object[] obj2 = client1.invoke("echo", new Object[] { "Hello"
});
            System.out.println(obj2[0].toString());

        } catch(Exception e) {
            e.printStackTrace();
        }

Re: org.apache.cxf.transport.http.HTTPException: HTTP response '400: Multi-Hop Cycle Detected' when communicating with

Posted by Daniel Kulp <dk...@apache.org>.
Not really sure on this.   It SOUNDS like more of a server side issue.   I 
would grab something like wireshark and try and capture the raw messages and 
look at the headers and such to see if something looks strange there.   

Dan


On Friday, June 22, 2012 12:58:49 PM Eric Chow wrote:
> Hello,
> 
> I am new to ApacheCXF. I got the following exception when using
> JaxWsDynamicClientFactory.
> 
> 
> 2012/6/22 下午 12:45:58 org.apache.cxf.common.jaxb.JAXBUtils
> logGeneratedClassNames
> 資訊: Created classes: test.service.Echo, test.service.EchoResponse,
> test.service.Find, test.service.FindResponse, test.service.ObjectFactory,
> test.service.User
> EricAA,N/A
> 2012/6/22 下午 12:45:58 org.apache.cxf.phase.PhaseInterceptorChain
> doDefaultLogging
> 警告: 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$MessageSenderEndingInt
> erceptor.handleMessage(MessageSenderInterceptor.java:64) at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorCha
> in.java:262) at
> org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:532) 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.endpoint.ClientImpl.invoke(ClientImpl.java:340) at
> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:326) at
> test.service.TestJaxWSDirect.main(TestJaxWSDirect.java:44) Caused by:
> org.apache.cxf.transport.http.HTTPException: HTTP response '400:
> Multi-Hop Cycle Detected' when communicating with
> http://localhost:8080/TestCXF/services/myservice
>     at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleRespon
> seInternal(HTTPConduit.java:1592) at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleRespon
> se(HTTPConduit.java:1520) at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPCo
> nduit.java:1428) at
> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
>     at
> org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:658) at
> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInt
> erceptor.handleMessage(MessageSenderInterceptor.java:62) ... 8 more
> org.apache.cxf.interceptor.Fault: Could not send Message.
>     at
> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInt
> erceptor.handleMessage(MessageSenderInterceptor.java:64) at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorCha
> in.java:262) at
> org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:532) 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.endpoint.ClientImpl.invoke(ClientImpl.java:340) at
> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:326) at
> test.service.TestJaxWSDirect.main(TestJaxWSDirect.java:44) Caused by:
> org.apache.cxf.transport.http.HTTPException: HTTP response '400:
> Multi-Hop Cycle Detected' when communicating with
> http://localhost:8080/TestCXF/services/myservice
>     at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleRespon
> seInternal(HTTPConduit.java:1592) at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleRespon
> se(HTTPConduit.java:1520) at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPCo
> nduit.java:1428) at
> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
>     at
> org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:658) at
> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInt
> erceptor.handleMessage(MessageSenderInterceptor.java:62) ... 8 more
> 
> 
> 
> 
> try {
>             JaxWsDynamicClientFactory dcf =
> JaxWsDynamicClientFactory.newInstance();
>             Client client1 = dcf.createClient("
> http://localhost:8080/TestCXF/services/myservice?wsdl");
>             Object[] obj1 = client1.invoke("find", new Object[] { "EricAA"
> });
> 
> 
>             Method m = obj1[0].getClass().getMethod("getName");
>             String s = (String)m.invoke(obj1[0]);
> 
>             System.out.println(s);
> 
> 
>             // the following part causes exception
>             Object[] obj2 = client1.invoke("echo", new Object[] { "Hello"
> });
>             System.out.println(obj2[0].toString());
> 
>         } catch(Exception e) {
>             e.printStackTrace();
>         }
-- 
Daniel Kulp
dkulp@apache.org - http://dankulp.com/blog
Talend Community Coder - http://coders.talend.com