0

I am trying to consume a web service which is there in mainframe system. I generated the stubs from the WSDL and it generated endpoint code as something like below

 @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 .

Now if i use the WSDL in SOAP UI its giving me a proper response.

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..

Here is the spinet of 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>
Geek
  • 1,214
  • 5
  • 14
  • 27
  • I'm not sure if I understand you. The service is executed with no errors and `rs.value` is null ? You can print it with `System.out.println(rs.value)` – pedrofb Aug 17 '16 at 13:22
  • Yes.. not only rs.value also n1.value and n2.value will be null after execution of service – Geek Aug 17 '16 at 16:36
  • Can you post the snippets of the xsd that shows the object you are returning? – Miles Aug 17 '16 at 17:11
  • Try to log SOAP request an responses to see the differences with SoapUI. http://stackoverflow.com/questions/1945618/tracing-xml-request-responses-with-jax-ws – pedrofb Aug 17 '16 at 17:39
  • @Miles I have edited my post with the info you were asking. – Geek Aug 17 '16 at 18:40

1 Answers1

0

I have solved this problem by creating the SOAP request XML and sending it over HTTPConnection and received the XML response. Getting the result was not possible using the stubs generated from WSDL. sO i opted this method

Geek
  • 1,214
  • 5
  • 14
  • 27