Hi,

Could you provide part of WSDL with definition of sayHelloResponse element and 
appropriate message?

Regards,
Andrei.

> -----Original Message-----
> From: Julien Taillard [mailto:[email protected]]
> Sent: Freitag, 5. April 2013 13:19
> To: [email protected]
> Subject: Problem while reading soap response
> 
> Hello,
> 
> I'm facing a problem using CXF 2.7.4 to build a client for a Metro Secured
> WebService.
> Client library is generated using the wsdl2java tool.
> 
> Calling a simple helloworld service, I get null result while SOAP response
> message seems correct.
>      System.out.println(fuzzimpl.sayHello());
> 
> SayHello method Signature:
>      public String sayHello();
> 
> The SOAP response message:
> <?xml version='1.0' encoding='UTF-8'?><S:Envelope
> xmlns:S="http://schemas.xmlsoap.org/soap/envelope/";
> xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-
> wssecurity-secext-1.0.xsd"
> xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-
> wssecurity-utility-1.0.xsd"
> xmlns:xs="http://www.w3.org/2001/XMLSchema";><S:Header><wsse:Securi
> ty
> S:mustUnderstand="1"><wsu:Timestamp
> xmlns:ns14="http://docs.oasis-open.org/ws-sx/ws-
> secureconversation/200512"
> xmlns:ns13="http://www.w3.org/2003/05/soap-envelope";
> wsu:Id="_1"><wsu:Created>2013-04-
> 05T10:39:49Z</wsu:Created><wsu:Expires>2013-04-
> 05T10:44:49Z</wsu:Expires></wsu:Timestamp></wsse:Security></S:Header
> ><S:Body><ns2:sayHelloResponse
> xmlns:ns2="http://impl.services.fuzzws.alicante.fr/";><ns2:hello>Hello</ns2:
> hello></ns2:sayHelloResponse></S:Body></S:Envelope>
> 
> Do you have an idea of what append and how to solve it?
> 
> Thanks and Regards,
> Julien
> 
> Global Trace:
> 
> INFO: Outbound Message
> ---------------------------
> ID: 1
> Address: https://localhost:8443/FuzzWSService
> Encoding: UTF-8
> Http-Method: POST
> Content-Type: text/xml
> Headers: {Accept=[*/*], SOAPAction=[""]}
> Payload: <soap:Envelope
> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";><soap:Header>
> <wsse:Security
> xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-
> wssecurity-secext-1.0.xsd"
> xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-
> wssecurity-utility-1.0.xsd"
> soap:mustUnderstand="1"><wsse:UsernameToken
> wsu:Id="UsernameToken-
> 1"><wsse:Username>test</wsse:Username><wsse:Password
> Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-
> username-token-profile-
> 1.0#PasswordText">test</wsse:Password><wsse:Nonce
> EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-
> soap-message-security-
> 1.0#Base64Binary">d3dmAYHNdMTpnVcDraYofw==</wsse:Nonce><wsu:Cr
> eated>2013-04-
> 05T10:39:49.701Z</wsu:Created></wsse:UsernameToken></wsse:Security>
> <Action
> xmlns="http://www.w3.org/2005/08/addressing";>http://impl.services.fuzz
> ws.alicante.fr/FuzzWSImplPortType/sayHello</Action><MessageID
> xmlns="http://www.w3.org/2005/08/addressing";>urn:uuid:c351d89f-0c92-
> 4483-998f-c553a228000a</MessageID><To
> xmlns="http://www.w3.org/2005/08/addressing";>https://localhost:8443/Fu
> zzWSService</To><ReplyTo
> xmlns="http://www.w3.org/2005/08/addressing";><Address>http://www.w
> 3.org/2005/08/addressing/anonymous</Address></ReplyTo></soap:Header
> ><soap:Body><ns1:sayHello
> xmlns:ns1="http://impl.services.fuzzws.alicante.fr/"/></soap:Body></soap:
> Envelope>
> --------------------------------------
> 5 avr. 2013 12:39:49
> org.apache.cxf.services.FuzzWSImpl.FuzzWSImplPort.FuzzWSImplPortType
> INFO: Inbound Message
> ----------------------------
> ID: 1
> Response-Code: 200
> Encoding: UTF-8
> Content-Type: text/xml;charset=UTF-8
> Headers: {content-type=[text/xml;charset=UTF-8],
> Server=[Jetty(8.0.1.v20110908)], transfer-encoding=[chunked]}
> Payload: <?xml version='1.0' encoding='UTF-8'?><S:Envelope
> xmlns:S="http://schemas.xmlsoap.org/soap/envelope/";
> xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-
> wssecurity-secext-1.0.xsd"
> xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-
> wssecurity-utility-1.0.xsd"
> xmlns:xs="http://www.w3.org/2001/XMLSchema";><S:Header><wsse:Securi
> ty
> S:mustUnderstand="1"><wsu:Timestamp
> xmlns:ns14="http://docs.oasis-open.org/ws-sx/ws-
> secureconversation/200512"
> xmlns:ns13="http://www.w3.org/2003/05/soap-envelope";
> wsu:Id="_1"><wsu:Created>2013-04-
> 05T10:39:49Z</wsu:Created><wsu:Expires>2013-04-
> 05T10:44:49Z</wsu:Expires></wsu:Timestamp></wsse:Security></S:Header
> ><S:Body><ns2:sayHelloResponse
> xmlns:ns2="http://impl.services.fuzzws.alicante.fr/";><ns2:hello>Hello</ns2:
> hello></ns2:sayHelloResponse></S:Body></S:Envelope>
> --------------------------------------
> null
> 
> Sample code for the client:
> 
>              ClientProxyFactoryBean factory = new ClientProxyFactoryBean();
>              factory.setServiceClass(FuzzWSImpl.class);
>              factory.setAddress("https://localhost:8443/FuzzWSService";);
> 
>              FuzzWSImpl fuzzimpl = (FuzzWSImpl) factory.create();
> 
>              Client cxfClient = ClientProxy.getClient(fuzzimpl);
>              //Log SOAP message
>              cxfClient.getInInterceptors().add(new LoggingInInterceptor());
>              cxfClient.getOutInterceptors().add(new
> LoggingOutInterceptor());
>              //Set Http conduit
>              HTTPConduit http = (HTTPConduit) cxfClient.getConduit();
>              TLSClientParameters param = new TLSClientParameters();
>              param.setDisableCNCheck(true);
>              http.setTlsClientParameters(param);
> 
>              //Set properties
>              Map<String, Object> outProps = new HashMap<String, Object>();
>              //Set userName token action
>              outProps.put(WSHandlerConstants.ACTION,
> WSHandlerConstants.USERNAME_TOKEN);
>              // Set username
>              outProps.put(WSHandlerConstants.USER, "test");
>              // Password type : plain text
>              outProps.put(WSHandlerConstants.PASSWORD_TYPE,
> WSConstants.PW_TEXT);
>              // for hashed password use:
>              //properties.put(WSHandlerConstants.PASSWORD_TYPE,
> WSConstants.PW_DIGEST);
>              // Callback used to retrieve password for given user.
>              outProps.put(WSHandlerConstants.PW_CALLBACK_CLASS,
>              ClientPasswordCallback.class.getName());
>              //Add nonce and created timestamp
>              outProps.put(WSHandlerConstants.ADD_UT_ELEMENTS,
> WSConstants.NONCE_LN + " " + WSConstants.CREATED_LN);
> 
>              //Enable web securiry
>              WSS4JOutInterceptor wssOut = new WSS4JOutInterceptor(outProps);
>              cxfClient.getEndpoint().getOutInterceptors().add(wssOut);
>              //For addressing
>              cxfClient.getEndpoint().getOutInterceptors().add(new
> org.apache.cxf.ws.addressing.MAPAggregator());
>              cxfClient.getEndpoint().getOutInterceptors().add(new
> org.apache.cxf.ws.addressing.soap.MAPCodec());
> 
>              //sayHello
>              System.out.println(fuzzimpl.sayHello());

Reply via email to