Hi,

I am having difficulty in passing paramter to web serivce.  Please see my
details of web service below.  I see web service method getting invoked but
payload is not correctly being set for method parameter.  I am using cxf
2.2.3.

wsd:
--------------------------------------
  <?xml version="1.0" ?>
 <wsdl:definitions name="GreeterService" targetNamespace="
http://xml.ms.com/ns/myhello/greeter"; xmlns:ns1="
http://schemas.xmlsoap.org/soap/http"; xmlns:soap="
http://schemas.xmlsoap.org/wsdl/soap/"; xmlns:tns="
http://xml.ms.com/ns/myhello/greeter"; xmlns:wsdl="
http://schemas.xmlsoap.org/wsdl/"; xmlns:xsd="
http://www.w3.org/2001/XMLSchema";>
 <wsdl:types>
 <xsd:schema attributeFormDefault="unqualified"
elementFormDefault="qualified" targetNamespace="
http://xml.ms.com/ns/myhello/greeter"; xmlns:tns="
http://xml.ms.com/ns/myhello/greeter"; xmlns:xsd="
http://www.w3.org/2001/XMLSchema";>
  <xsd:element name="Greeter" nillable="true" type="xsd:string" />
  <xsd:element name="GreeterResponse" nillable="true" type="xsd:string" />
  </xsd:schema>
  </wsdl:types>
 <wsdl:message name="Greeter">
  <wsdl:part element="tns:Greeter" name="request" />
  </wsdl:message>
 <wsdl:message name="GreeterResponse">
  <wsdl:part element="tns:GreeterResponse" name="GreeterResponse" />
  </wsdl:message>
 <wsdl:portType name="Greeter">
 <wsdl:operation name="Greeter">
  <wsdl:input message="tns:Greeter" name="Greeter" />
  <wsdl:output message="tns:GreeterResponse" name="GreeterResponse" />
  </wsdl:operation>
  </wsdl:portType>
 <wsdl:binding name="GreeterServiceSoapHttpBinding" type="tns:Greeter">
  <soap:binding style="document" transport="
http://schemas.xmlsoap.org/soap/http"; />
 <wsdl:operation name="Greeter">
  <soap:operation soapAction="" style="document" />
 <wsdl:input name="Greeter">
  <soap:body use="literal" />
  </wsdl:input>
 <wsdl:output name="GreeterResponse">
  <soap:body use="literal" />
  </wsdl:output>
  </wsdl:operation>
  </wsdl:binding>
 <wsdl:service name="GreeterService">
 <wsdl:port binding="tns:GreeterServiceSoapHttpBinding" name="GreeterPort">
  <soap:address location="
http://localhost:8080/MyHello6/services/greeterService"; />
  </wsdl:port>
  </wsdl:service>
  </wsdl:definitions>


Greeter.java
-----------------
package myhello;

import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;

import org.apache.cxf.interceptor.InInterceptors;

@WebService(targetNamespace = Greeter.NS_URI)
@SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
@InInterceptors(interceptors =
"org.apache.cxf.interceptor.LoggingInInterceptor")
public class Greeter {

    public static final String NS_URI = "
http://xml.ms.com/ns/myhello/greeter";;

    @WebMethod(operationName = "Greeter")
    public String greeter(@WebParam(targetNamespace = NS_URI,
partName="request")String request) {
        return "Hello, " + request;
    }
}

running client using curl
-----------------------------------
curl -d "`cat a.xml`"
http://172.18.33.222:8080/MyHello6/services/greeterService
<soap:Envelope 
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";><soap:Body><GreeterResponse
xmlns="http://xml.ms.com/ns/myhello/greeter";>Hello,
    </GreeterResponse></soap:Body></soap:Envelope>


Here is snippet from java logs of web service.
Payload:
---------------------------
ID: 1
Address: /MyHello6/services/greeterService
Encoding: ISO-8859-1
Content-Type: application/x-www-form-urlencoded
Headers: {x-bluecoat-via=[9734D0704E62AED2],
content-type=[application/x-www-form-urlencoded], connection=[Keep-Alive],
via=[1.1 pabcgw04], host=[172.18.33.222:8080],
x-forwarded-for=[172.21.211.138], content-length=[261],
user-agent=[curl/7.10.6 (i386-redhat-linux-gnu) libcurl/7.10.6
OpenSSL/0.9.7a ipv6 zlib/1.1.4],
Content-Type=[application/x-www-form-urlencoded], Accept=[image/gif,
image/x-xbitmap, image/jpeg, image/pjpeg, */*], pragma=[no-cache]}
Payload: <?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";>
  <soap:Body xmlns="http://xml.ms.com/ns/myhello/greeter";>
    <Greeter>
      <request>Mitenm</request>
    </Greeter>
  </soap:Body>
</soap:Envelope>
--------------------------------------


Regards,

Miten Mehta

Reply via email to