从Web服务中的soap对象获取SOAP响应

时间:2013-01-07 06:58:03

标签: java soap

我的wsdl中的肥皂地址位置为"<soap:address location="http://localhost:8080/rpc/soap/helloworldsoap"/>"

在我的网络服务方法中,我有以下路径。

@HttpResource(location="/{name}")

我想获取SOAP响应对象。

我尝试了以下网址。

的http://本地主机:8080 / RPC /肥皂/ helloworldsoap / ABCD

WSDL

<?xml version='1.0' encoding='UTF-8'?>

<wsdl:definitions name="HelloWorldImplService" targetNamespace="some name space" xmlns:ns1="http://test.com/webservices" xmlns:ns2="http://cxf.apache.org/bindings/xformat" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="some name space" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <wsdl:import location="http://localhost:8080/rpc/soap/helloworldsoap?wsdl=HelloWorld.wsdl" namespace="http://test.com/webservices">
    </wsdl:import>
  <wsdl:binding name="HelloWorldImplServiceSoapBinding" type="ns1:HelloWorld">
    <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
    <wsdl:operation name="getHelloWorldAsString">
      <soap:operation soapAction="" style="rpc" />
      <wsdl:input name="getHelloWorldAsString">
        <soap:body namespace="http://test.com/webservices" use="literal" />
      </wsdl:input>
      <wsdl:output name="getHelloWorldAsStringResponse">
        <soap:body namespace="http://test.com/webservices" use="literal" />
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:service name="HelloWorldImplService">
    <wsdl:port binding="tns:HelloWorldImplServiceSoapBinding" name="HelloWorldImplPort">
      <soap:address location="http://localhost:8080/rpc/soap/helloworldsoap" />
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>

SOAP:

    <soap:Envelope>
       <soap:Body>
        <soap:Fault>
       <faultcode>soap:Server</faultcode>
      <faultstring>No such operation:  (HTTP GET PATH_INFO: /soap/helloworldsoap)     
      </faultstring>
    </soap:Fault>
  </soap:Body>
  </soap:Envelope>

但我没有得到回复对象。

任何人都可以告诉我如何实现这一目标。

先谢谢。

1 个答案:

答案 0 :(得分:0)

您没有提供太多信息。但是试试

telnet到localhost 8080,查看服务是否正在运行

如果是,则使用命令行中的curl检查WSDL是否实际可用。