The following is the debug log, it could not call the second "service.echo":
> 2012-12-07 15:59:13 INFO org.apache.cxf.interceptor.AbstractLoggingInterceptor:log,234 - Inbound Message ---------------------------- ID: 1 Address: http://localhost:8080/TestCXF/myservice?WSDL Http-Method: GET Content-Type: Headers: {Accept=[text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2], cache-control=[no-cache], connection=[keep-alive], Content-Type=[null], host=[localhost:8080], pragma=[no-cache], user-agent=[Java/1.6.0_33]} -------------------------------------- 2012-12-07 15:59:14 INFO org.apache.cxf.interceptor.AbstractLoggingInterceptor:log,234 - Inbound Message ---------------------------- ID: 2 Address: http://localhost:8080/TestCXF/myservice Encoding: UTF-8 Http-Method: POST Content-Type: text/xml; charset=UTF-8 Headers: {Accept=[*/*], cache-control=[no-cache], connection=[keep-alive], Content-Length=[176], content-type=[text/xml; charset=UTF-8], host=[localhost:8080], pragma=[no-cache], SOAPAction=[""], user-agent=[Apache CXF 2.7.0]} Payload: <soap:Envelope xmlns:soap=" http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><ns2:echo xmlns:ns2=" http://service.test/"><msg>OK</msg></ns2:echo></soap:Body></soap:Envelope> -------------------------------------- 2012-12-07 15:59:14 INFO org.apache.cxf.interceptor.AbstractLoggingInterceptor:log,234 - Outbound Message --------------------------- ID: 2 Encoding: UTF-8 Content-Type: text/xml Headers: {} Payload: <soap:Envelope xmlns:soap=" http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><ns2:echoResponse xmln > On Fri, Dec 7, 2012 at 12:30 PM, Eric Chow <[email protected]> wrote: > I have defined the beans.xml as following, but no log output. > > > > >> > <?xml version="1.0" encoding="UTF-8"?> > <beans xmlns="http://www.springframework.org/schema/beans" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xmlns:jaxws="http://cxf.apache.org/jaxws" > xmlns:cxf="http://cxf.apache.org/core" > xsi:schemaLocation=" > http://www.springframework.org/schema/beans > http://www.springframework.org/schema/beans/spring-beans.xsd > http://www.springframework.org/schema/util > http://www.springframework.org/schema/util/spring-util-2.0.xsd > http://cxf.apache.org/jaxws > http://cxf.apache.org/schemas/jaxws.xsd > http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd > "> > > <import resource="classpath:META-INF/cxf/cxf.xml" /> > <import resource="classpath*:META-INF/cxf/cxf-extension-*.xml" /> > <import resource="classpath:META-INF/cxf/cxf-servlet.xml" /> > > > <cxf:bus> > <cxf:features> > <cxf:logging/> > </cxf:features> > </cxf:bus> > > > <jaxws:endpoint id="data" > implementor="test.service.MyService" > address="/myservice"> > > <jaxws:features> > <bean class="org.apache.cxf.feature.LoggingFeature"/> > </jaxws:features> > </jaxws:endpoint> > </beans> > > >> > > > > > > > > > > > > > > > > > > > On Wed, Dec 5, 2012 at 6:25 PM, Sergey Beryozkin <[email protected]>wrote: > >> 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<http://service.test/%7DMyServiceService#%7Bhttp://service.test/%7Decho>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<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<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 >>>> >>>> >>>> >>>> >>>> >>> >> >> >
