简体   繁体   English

SOAP客户端响应

[英]SOAP client response

I am trying to consume a web service which is there in mainframe system. 我正在尝试使用大型机系统中存在的Web服务。 I generated the stubs from the WSDL and it generated endpoint code as something like below 我从WSDL生成了存根,并生成了端点代码,如下所示

 @WebMethod(operationName = "ADDWEBSOperation")
    @RequestWrapper(localName = "ADDWEBSOperation", targetNamespace = "http://www.*****.******.Request.com", className = "com.*****.*****.addwebs.ProgramInterface")
    @ResponseWrapper(localName = "ADDWEBSOperationResponse", targetNamespace = "http://www.***.***.Response.com", className = "com.*****.*****.addwebs.ProgramInterface")
    public void addwebsOperation(
        @WebParam(name = "Num1", targetNamespace = "http://www.***.****.Request.com", mode = WebParam.Mode.INOUT)
        Holder<Integer> num1,
        @WebParam(name = "Num2", targetNamespace = "http://www.*****.*****.Request.com", mode = WebParam.Mode.INOUT)
        Holder<Integer> num2,
        @WebParam(name = "Result", targetNamespace = "http://www.*****.*****.Request.com", mode = WebParam.Mode.INOUT)
        Holder<Integer> result);

}

It shows this service endpoint is returning nothing (Void). 它显示此服务端点未返回任何内容(无效)。

Its a simple calculator service where Num1 and Num2 are added and move it to Result . 它是一个简单的计算器服务,其中添加了Num1Num2并将其移至Result

Now if i use the WSDL in SOAP UI its giving me a proper response. 现在,如果我在SOAP UI中使用WSDL,它会给我适当的响应。

I have done coded something like this. 我已经完成了类似这样的编码。

public class TestClass {

    public static void main(String[] args) {  
    ADDWEBSService srvc = new ADDWEBSService();
        Holder<Integer> n2 = new Holder<Integer>();
        Holder<Integer> n1 = new Holder<Integer>();
        Holder<Integer> rs = new Holder<Integer>();
        n1.value = 10;
        n2.value = 2;
         srvc.getADDWEBSPort().addwebsOperation(n1, n2, rs);
    }
}

i am not getting how can i get the show the result. 我没有得到如何显示结果。 My Service call is sucessfull but i need help in displaying the response value (rs) here.. 我的服务呼叫已成功完成,但我需要在此处显示响应值(rs)的帮助。

Here is the spinet of WSDL. 这是WSDL的内容。

<?xml version="1.0" ?>
<definitions targetNamespace="http://www.***.***.com" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:reqns="http://www.***.***.Request.com" xmlns:resns="http://www.***.***.Response.com" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://www.***.***.com">
   <types>
      <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://www.***.***.Request.com" xmlns:tns="http://www.***.***.Request.com">
         <xsd:annotation>
            <xsd:documentation source="http://www.***.com/sftware/***/cics/annotations">This schema was generated by the CICS Web services assistant.</xsd:documentation>
         </xsd:annotation>
         <xsd:annotation>
            <xsd:appinfo source="http://www.***.com/sftware/***/cics/annotations">
com.***.cics.wsdl.properties.mappingLevel=3.0</xsd:appinfo>
         </xsd:annotation>
         <xsd:complexType abstract="false" block="#all" final="#all" mixed="false" name="ProgramInterface">
            <xsd:sequence>
               <xsd:element name="Num1" nillable="false">
                  <xsd:simpleType>
                     <xsd:annotation>
                        <xsd:appinfo source="http://www.***.com/sftware/***/cics/annotations">
com.***.cics.wsdl.properties.synchronized=false</xsd:appinfo>
                     </xsd:annotation>
                     <xsd:restriction base="xsd:unsignedShort">
                        <xsd:maxInclusive value="99"/>
                        <xsd:minInclusive value="0"/>
                     </xsd:restriction>
                  </xsd:simpleType>
               </xsd:element>
               <xsd:element name="Num2" nillable="false">
                  <xsd:simpleType>
                     <xsd:annotation>
                        <xsd:appinfo source="http://www.***.com/sftware/***/cics/annotations">
com.***.cics.wsdl.properties.synchronized=false</xsd:appinfo>
                     </xsd:annotation>
                     <xsd:restriction base="xsd:unsignedShort">
                        <xsd:maxInclusive value="99"/>
                        <xsd:minInclusive value="0"/>
                     </xsd:restriction>
                  </xsd:simpleType>
               </xsd:element>
               <xsd:element name="Result" nillable="false">
                  <xsd:simpleType>
                     <xsd:annotation>
                        <xsd:appinfo source="http://www.***.com/sftware/***/cics/annotations">
com.***.cics.wsdl.properties.synchronized=false</xsd:appinfo>
                     </xsd:annotation>
                     <xsd:restriction base="xsd:unsignedShort">
                        <xsd:maxInclusive value="9999"/>
                        <xsd:minInclusive value="0"/>
                     </xsd:restriction>
                  </xsd:simpleType>
               </xsd:element>
            </xsd:sequence>
         </xsd:complexType>
         <xsd:element name="ADDWEBSOperation" nillable="false" type="tns:ProgramInterface"/>
      </xsd:schema>
      <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://www.***.***.Response.com" xmlns:tns="http://www.***.***.Response.com">
         <xsd:annotation>
            <xsd:documentation source="http://www.***.com/sftware/***/cics/annotations">This schema was generated by the CICS Web services assistant.</xsd:documentation>
         </xsd:annotation>
         <xsd:annotation>
            <xsd:appinfo source="http://www.***.com/sftware/***/cics/annotations">
com.***.cics.wsdl.properties.mappingLevel=3.0</xsd:appinfo>
         </xsd:annotation>
         <xsd:complexType abstract="false" block="#all" final="#all" mixed="false" name="ProgramInterface">
            <xsd:sequence>
               <xsd:element name="Num1" nillable="false">
                  <xsd:simpleType>
                     <xsd:annotation>
                        <xsd:appinfo source="http://www.***.com/sftware/***/cics/annotations">
com.***.cics.wsdl.properties.synchronized=false</xsd:appinfo>
                     </xsd:annotation>
                     <xsd:restriction base="xsd:unsignedShort">
                        <xsd:maxInclusive value="99"/>
                        <xsd:minInclusive value="0"/>
                     </xsd:restriction>
                  </xsd:simpleType>
               </xsd:element>
               <xsd:element name="Num2" nillable="false">
                  <xsd:simpleType>
                     <xsd:annotation>
                        <xsd:appinfo source="http://www.***.com/sftware/***/cics/annotations">
com.***.cics.wsdl.properties.synchronized=false</xsd:appinfo>
                     </xsd:annotation>
                     <xsd:restriction base="xsd:unsignedShort">
                        <xsd:maxInclusive value="99"/>
                        <xsd:minInclusive value="0"/>
                     </xsd:restriction>
                  </xsd:simpleType>
               </xsd:element>
               <xsd:element name="Result" nillable="false">
                  <xsd:simpleType>
                     <xsd:annotation>
                        <xsd:appinfo source="http://www.***.com/sftware/***/cics/annotations">
com.***.cics.wsdl.properties.synchronized=false</xsd:appinfo>
                     </xsd:annotation>
                     <xsd:restriction base="xsd:unsignedShort">
                        <xsd:maxInclusive value="9999"/>
                        <xsd:minInclusive value="0"/>
                     </xsd:restriction>
                  </xsd:simpleType>
               </xsd:element>
            </xsd:sequence>
         </xsd:complexType>
         <xsd:element name="ADDWEBSOperationResponse" nillable="false" type="tns:ProgramInterface"/>
      </xsd:schema>
   </types>
   <message name="ADDWEBSOperationResponse">
      <part element="resns:ADDWEBSOperationResponse" name="ResponsePart"/>
   </message>
   <message name="ADDWEBSOperationRequest">
      <part element="reqns:ADDWEBSOperation" name="RequestPart"/>
   </message>
   <portType name="ADDWEBSPort">
      <operation name="ADDWEBSOperation">
         <input message="tns:ADDWEBSOperationRequest" name="ADDWEBSOperationRequest"/>
         <output message="tns:ADDWEBSOperationResponse" name="ADDWEBSOperationResponse"/>
      </operation>
   </portType>
   <binding name="ADDWEBSHTTPSoapBinding" type="tns:ADDWEBSPort">
      <!-- This soap:binding indicates the use of SOAP 1.1 -->
      <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
      <operation name="ADDWEBSOperation">
         <soap:operation soapAction="" style="document"/>
         <input name="ADDWEBSOperationRequest">
            <soap:body parts="RequestPart" use="literal"/>
         </input>
         <output name="ADDWEBSOperationResponse">
            <soap:body parts="ResponsePart" use="literal"/>
         </output>
      </operation>
   </binding>
   <service name="ADDWEBSService">
      <port binding="tns:ADDWEBSHTTPSoapBinding" name="ADDWEBSPort">
         <!-- This soap:address indicates the location of the Web service over HTTP.
              Please replace "my-server" with the TCPIP host name of your CICS region.
              Please replace "my-port" with the port number of your CICS TCPIPSERVICE. -->
         <soap:address location="http://**.**.*.***:****/addwebs"/>
         <!-- This soap:address indicates the location of the Web service over HTTPS. -->
         <!-- <soap:address location="https://my-server:my-port/addwebs"/> -->
         <!-- This soap:address indicates the location of the Web service over WebSphere MQSeries.
              Please replace "my-queue" with the appropriate queue name. -->
         <!-- <soap:address location="jms:/queue?destination=my-queue&amp;connectionFactory=()&amp;targetService=/addwebs&amp;initialContextFactory=com.***.mq.jms.Nojndi" /> -->
      </port>
   </service>
</definitions>

I have solved this problem by creating the SOAP request XML and sending it over HTTPConnection and received the XML response. 我已经通过创建SOAP请求XML并通过HTTPConnection发送它来解决此问题,并收到XML响应。 Getting the result was not possible using the stubs generated from WSDL. 使用WSDL生成的存根无法获得结果。 sO i opted this method 我选择了这种方法

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM