I tried to use Metro to generate the proxy stub and it worked fine and did not get the same exceptions.
<?xml version='1.0' encoding='UTF-8'?><wsdl:definitions xmlns:xsd=" http://www.w3.org/2001/XMLSchema" xmlns:wsdl=" http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://service.test/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:ns1=" http://schemas.xmlsoap.org/soap/http" name="MyServiceService" targetNamespace="http://service.test/"> <wsdl:types> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns=" http://service.test/" elementFormDefault="unqualified" targetNamespace=" http://service.test/" version="1.0"> <xs:element name="echo" type="tns:echo"/> <xs:element name="echoResponse" type="tns:echoResponse"/> <xs:element name="find" type="tns:find"/> <xs:element name="findResponse" type="tns:findResponse"/> <xs:element name="user" type="tns:user"/> <xs:complexType name="find"> <xs:sequence> <xs:element minOccurs="0" name="msg" type="xs:string"/> </xs:sequence> </xs:complexType> <xs:complexType name="findResponse"> <xs:sequence> <xs:element minOccurs="0" name="return" type="tns:user"/> </xs:sequence> </xs:complexType> <xs:complexType name="user"> <xs:sequence> <xs:element name="id" type="xs:int"/> <xs:element minOccurs="0" name="name" type="xs:string"/> <xs:element minOccurs="0" name="sex" type="xs:string"/> <xs:element minOccurs="0" name="photo" type="xs:base64Binary"/> </xs:sequence> </xs:complexType> <xs:complexType name="echo"> <xs:sequence> <xs:element minOccurs="0" name="msg" type="xs:string"/> </xs:sequence> </xs:complexType> <xs:complexType name="echoResponse"> <xs:sequence> <xs:element minOccurs="0" name="return" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:schema> </wsdl:types> <wsdl:message name="find"> <wsdl:part element="tns:find" name="parameters"> </wsdl:part> </wsdl:message> <wsdl:message name="echoResponse"> <wsdl:part element="tns:echoResponse" name="parameters"> </wsdl:part> </wsdl:message> <wsdl:message name="echo"> <wsdl:part element="tns:echo" name="parameters"> </wsdl:part> </wsdl:message> <wsdl:message name="findResponse"> <wsdl:part element="tns:findResponse" name="parameters"> </wsdl:part> </wsdl:message> <wsdl:portType name="MyService"> <wsdl:operation name="find"> <wsdl:input message="tns:find" name="find"> </wsdl:input> <wsdl:output message="tns:findResponse" name="findResponse"> </wsdl:output> </wsdl:operation> <wsdl:operation name="echo"> <wsdl:input message="tns:echo" name="echo"> </wsdl:input> <wsdl:output message="tns:echoResponse" name="echoResponse"> </wsdl:output> </wsdl:operation> </wsdl:portType> <wsdl:binding name="MyServiceServiceSoapBinding" type="tns:MyService"> <soap:binding style="document" transport=" http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation name="find"> <soap:operation soapAction="" style="document"/> <wsdl:input name="find"> <soap:body use="literal"/> </wsdl:input> <wsdl:output name="findResponse"> <soap:body use="literal"/> </wsdl:output> </wsdl:operation> <wsdl:operation name="echo"> <soap:operation soapAction="" style="document"/> <wsdl:input name="echo"> <soap:body use="literal"/> </wsdl:input> <wsdl:output name="echoResponse"> <soap:body use="literal"/> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="MyServiceService"> <wsdl:port binding="tns:MyServiceServiceSoapBinding" name="MyServicePort"> <soap:address location="http://localhost:8080/TestCXF/myservice"/> </wsdl:port> </wsdl:service> </wsdl:definitions> > > On Tue, Dec 11, 2012 at 10:14 AM, Willem jiang <[email protected]>wrote: > Can you try access the wsdl file with a browser? > In this way, we could check if there is something wrong on the server side. > > > -- > Willem Jiang > > Red Hat, Inc. > FuseSource is now part of Red Hat > Web: http://www.fusesource.com | http://www.redhat.com > Blog: http://willemjiang.blogspot.com (http://willemjiang.blogspot.com/) > (English) > http://jnn.iteye.com (http://jnn.javaeye.com/) (Chinese) > Twitter: willemjiang > Weibo: 姜宁willem > > > > > > On Tuesday, December 11, 2012 at 9:06 AM, Eric Chow wrote: > > > Here is the client exception stack trace: > > Furthermore, I did not add any http conduit. > > > > > > > > > > > > package test.service; > > > > import java.net.URL; > > > > import javax.xml.namespace.QName; > > > > import my.test.service.MyService; > > import my.test.service.MyServiceService; > > > > /** > > * @author Eric Chow (hkc) > > * > > */ > > public class TestWS { > > > > private static final QName SERVICE_NAME = new QName(" > > http://service.test/", "MyServiceService"); > > private static final String SERVICE_URL = " > > http://localhost:8080/TestCXF/myservice?WSDL"; > > > > /** > > * > > * > > * > > * @param args > > */ > > public static void main(String[] args) { > > try { > > > > > > > > MyServiceService port = new MyServiceService(new URL(" > > http://localhost:8080/TestCXF/myservice?wsdl")); > > MyService service = port.getMyServicePort(); > > /* > > MyServiceService port = new MyServiceService(new > > URL(SERVICE_URL), SERVICE_NAME); > > MyService service = port.getMyServicePort(); > > */ > > System.out.println(service.echo("OK")); > > > > System.out.println(service.echo("OK again")); > > > > } catch(Exception e) { > > e.printStackTrace(); > > } > > > > } > > > > } > > > > > > > > > > > > > > > > 2012/12/11 上午 09:04:25 > > org.apache.cxf.service.factory.ReflectionServiceFactoryBean > > buildServiceFromWSDL > > Info: Creating Service {http://service.test/}MyServiceService from WSDL: > > http://localhost:8080/TestCXF/myservice?wsdl > > Server: OK > > 2012/12/11 上午 09:04:27 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:41) > > 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:41) > > 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 > > > > > > > > > > > > > > > > > > On Fri, Dec 7, 2012 at 6:41 PM, Sergey Beryozkin > > <[email protected](mailto: > [email protected])>wrote: > > > > > Can you actually post the client-side logs ? > > > Also - do you specifically configure HttpConduit and if yes then how ? > > > > > > Thanks, Sergey > > > > > > > > > On 07/12/12 08:04, Eric Chow wrote: > > > > > > > > > > > > > > > > > > > > > > 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://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< > 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/< > 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/< > http://schemas.xmlsoap.org/soap/envelope/> > > > > "><soap:Body><**ns2:echoResponse > > > > xmlns:ns2="http://service.**test/ <http://service.test/ > >"><return>Server: > > > > OK</return></ns2:echoResponse>**</soap:Body></soap:Envelope> > > > > ------------------------------**-------- > > > > > > > > >
