Do we need a J2EE server to call a Web Service?

Hi Guys,
We are running on 640 ABAP core. I am trying to expose a BAPI as a Web Service. This Web Service is going to be invoked by a external web server.
Do we need to have J2EE installed on the Web AS for the successful execution of the Web Service?
Currently I have created a Web Service using the Web Service Wizard, but having some user authorization issues in calling the web service.
Regards
Sujan

Hi,
Sujan,
Check out the links,
http://help.sap.com/saphelp_nw2004s/helpdata/en/43/dee13d82fcfb34e10000000a114084/frameset.htm
http://help.sap.com/saphelp_nw2004s/helpdata/en/43/dee13d82fcfb34e10000000a114084/frameset.htm
http://help.sap.com/saphelp_nw2004s/helpdata/en/43/dee13d82fcfb34e10000000a114084/frameset.htm
http://help.sap.com/saphelp_nw2004s/helpdata/en/b7/d7baaf1481a349ab723e3acd7334b3/frameset.htm
Regards
Venkat

Similar Messages

  • Problem about Calling SQLplus Web Service on Aspen Watch Server

    Hi all,
    We're using MII 11.5 and trying to call a web service from a Aspen Watch server through the web service block in transaction. The web service enclosed a function call ExecuteSQL which will accept a sql query function and return a set of Data. Now, using the same web service on two different servers, we got a success(server A) and a failure(Server B). On the failed call, right in the first page of enter a URL, it will return a "SOAP Service could not be loaded: The element type 'META' must be terminated by the machine end-tag '</META>'" error.
    According to the admin of the web server, the web service on both servers can be called correctly when he created two simple ASP pages. After serious testing, he thought that the only reason should be MII may not be compatible with .Net 2.0 binding web service. The following is some comparison we made to the two servers.
                                                                                    Server A / Server B / Error, if applicable
    .Net Framework installed on MII server:                                 1.1, 2.0 /      1.1, 2.0     
    .Net Binding:                                                                          1.1 /               2.0
    IIS version on MII server:                                                 6 /                 6     
    From MII server broser to Server A web service:                 Yes /      Yes     
    From MII server browser to Server B web service:                 No /     No /      Return on web "The test form is only available for requests from the local machine"
    From localhost browser to Server A web service:                 n/a //     Yes     
    From localhost browser to Server B web service:                 Yes //     n/a     
    From PC browser to Server B web service:                                No /        Yes /     Return on web "The test form is only available for requests from the local machine"
    Credentials required to run web service:                                 No /     Yes /     
    The following are the SOAP generated:
    Server A
      <?xml version="1.0" encoding="utf-8" ?>
    - <wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://www.aspentech.com/SQLplus.WebService/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" targetNamespace="http://www.aspentech.com/SQLplus.WebService/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
    - <wsdl:types>
    - <s:schema elementFormDefault="qualified" targetNamespace="http://www.aspentech.com/SQLplus.WebService/">
    - <s:element name="ExecuteSQL">
    - <s:complexType>
    - <s:sequence>
      <s:element minOccurs="0" maxOccurs="1" name="command" type="s:string" />
      </s:sequence>
      </s:complexType>
      </s:element>
    - <s:element name="ExecuteSQLResponse">
    - <s:complexType>
    - <s:sequence>
      <s:element minOccurs="0" maxOccurs="1" name="ExecuteSQLResult" type="s:string" />
      </s:sequence>
      </s:complexType>
      </s:element>
      <s:element name="string" nillable="true" type="s:string" />
      </s:schema>
      </wsdl:types>
    - <wsdl:message name="ExecuteSQLSoapIn">
      <wsdl:part name="parameters" element="tns:ExecuteSQL" />
      </wsdl:message>
    - <wsdl:message name="ExecuteSQLSoapOut">
      <wsdl:part name="parameters" element="tns:ExecuteSQLResponse" />
      </wsdl:message>
    - <wsdl:message name="ExecuteSQLHttpGetIn">
      <wsdl:part name="command" type="s:string" />
      </wsdl:message>
    - <wsdl:message name="ExecuteSQLHttpGetOut">
      <wsdl:part name="Body" element="tns:string" />
      </wsdl:message>
    - <wsdl:message name="ExecuteSQLHttpPostIn">
      <wsdl:part name="command" type="s:string" />
      </wsdl:message>
    - <wsdl:message name="ExecuteSQLHttpPostOut">
      <wsdl:part name="Body" element="tns:string" />
      </wsdl:message>
    - <wsdl:portType name="SQLplusWebServiceSoap">
    - <wsdl:operation name="ExecuteSQL">
      <wsdl:input message="tns:ExecuteSQLSoapIn" />
      <wsdl:output message="tns:ExecuteSQLSoapOut" />
      </wsdl:operation>
      </wsdl:portType>
    - <wsdl:portType name="SQLplusWebServiceHttpGet">
    - <wsdl:operation name="ExecuteSQL">
      <wsdl:input message="tns:ExecuteSQLHttpGetIn" />
      <wsdl:output message="tns:ExecuteSQLHttpGetOut" />
      </wsdl:operation>
      </wsdl:portType>
    - <wsdl:portType name="SQLplusWebServiceHttpPost">
    - <wsdl:operation name="ExecuteSQL">
      <wsdl:input message="tns:ExecuteSQLHttpPostIn" />
      <wsdl:output message="tns:ExecuteSQLHttpPostOut" />
      </wsdl:operation>
      </wsdl:portType>
    - <wsdl:binding name="SQLplusWebServiceSoap" type="tns:SQLplusWebServiceSoap">
      <soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
    - <wsdl:operation name="ExecuteSQL">
      <soap:operation soapAction="http://www.aspentech.com/SQLplus.WebService/ExecuteSQL" style="document" />
    - <wsdl:input>
      <soap:body use="literal" />
      </wsdl:input>
    - <wsdl:output>
      <soap:body use="literal" />
      </wsdl:output>
      </wsdl:operation>
      </wsdl:binding>
    - <wsdl:binding name="SQLplusWebServiceSoap12" type="tns:SQLplusWebServiceSoap">
      <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" />
    - <wsdl:operation name="ExecuteSQL">
      <soap12:operation soapAction="http://www.aspentech.com/SQLplus.WebService/ExecuteSQL" style="document" />
    - <wsdl:input>
      <soap12:body use="literal" />
      </wsdl:input>
    - <wsdl:output>
      <soap12:body use="literal" />
      </wsdl:output>
      </wsdl:operation>
      </wsdl:binding>
    - <wsdl:binding name="SQLplusWebServiceHttpGet" type="tns:SQLplusWebServiceHttpGet">
      <http:binding verb="GET" />
    - <wsdl:operation name="ExecuteSQL">
      <http:operation location="/ExecuteSQL" />
    - <wsdl:input>
      <http:urlEncoded />
      </wsdl:input>
    - <wsdl:output>
      <mime:mimeXml part="Body" />
      </wsdl:output>
      </wsdl:operation>
      </wsdl:binding>
    - <wsdl:binding name="SQLplusWebServiceHttpPost" type="tns:SQLplusWebServiceHttpPost">
      <http:binding verb="POST" />
    - <wsdl:operation name="ExecuteSQL">
      <http:operation location="/ExecuteSQL" />
    - <wsdl:input>
      <mime:content type="application/x-www-form-urlencoded" />
      </wsdl:input>
    - <wsdl:output>
      <mime:mimeXml part="Body" />
      </wsdl:output>
      </wsdl:operation>
      </wsdl:binding>
    - <wsdl:service name="SQLplusWebService">
    - <wsdl:port name="SQLplusWebServiceSoap" binding="tns:SQLplusWebServiceSoap">
      <soap:address location="http://clkaspenwatch:13080/sqlpluswebservice/sqlpluswebservice.asmx" />
      </wsdl:port>
    - <wsdl:port name="SQLplusWebServiceSoap12" binding="tns:SQLplusWebServiceSoap12">
      <soap12:address location="http://clkaspenwatch:13080/sqlpluswebservice/sqlpluswebservice.asmx" />
      </wsdl:port>
    - <wsdl:port name="SQLplusWebServiceHttpGet" binding="tns:SQLplusWebServiceHttpGet">
      <http:address location="http://servera:13080/sqlpluswebservice/sqlpluswebservice.asmx" />
      </wsdl:port>
    - <wsdl:port name="SQLplusWebServiceHttpPost" binding="tns:SQLplusWebServiceHttpPost">
      <http:address location="http://servera:13080/sqlpluswebservice/sqlpluswebservice.asmx" />
      </wsdl:port>
      </wsdl:service>
      </wsdl:definitions>
    Server B
      <?xml version="1.0" encoding="utf-8" ?>
    - <wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://www.aspentech.com/SQLplus.WebService/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" targetNamespace="http://www.aspentech.com/SQLplus.WebService/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
    - <wsdl:types>
    - <s:schema elementFormDefault="qualified" targetNamespace="http://www.aspentech.com/SQLplus.WebService/">
    - <s:element name="ExecuteSQL">
    - <s:complexType>
    - <s:sequence>
      <s:element minOccurs="0" maxOccurs="1" name="command" type="s:string" />
      </s:sequence>
      </s:complexType>
      </s:element>
    - <s:element name="ExecuteSQLResponse">
    - <s:complexType>
    - <s:sequence>
      <s:element minOccurs="0" maxOccurs="1" name="ExecuteSQLResult" type="s:string" />
      </s:sequence>
      </s:complexType>
      </s:element>
      </s:schema>
      </wsdl:types>
    - <wsdl:message name="ExecuteSQLSoapIn">
      <wsdl:part name="parameters" element="tns:ExecuteSQL" />
      </wsdl:message>
    - <wsdl:message name="ExecuteSQLSoapOut">
      <wsdl:part name="parameters" element="tns:ExecuteSQLResponse" />
      </wsdl:message>
    - <wsdl:portType name="SQLplusWebServiceSoap">
    - <wsdl:operation name="ExecuteSQL">
      <wsdl:input message="tns:ExecuteSQLSoapIn" />
      <wsdl:output message="tns:ExecuteSQLSoapOut" />
      </wsdl:operation>
      </wsdl:portType>
    - <wsdl:binding name="SQLplusWebServiceSoap" type="tns:SQLplusWebServiceSoap">
      <soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
    - <wsdl:operation name="ExecuteSQL">
      <soap:operation soapAction="http://www.aspentech.com/SQLplus.WebService/ExecuteSQL" style="document" />
    - <wsdl:input>
      <soap:body use="literal" />
      </wsdl:input>
    - <wsdl:output>
      <soap:body use="literal" />
      </wsdl:output>
      </wsdl:operation>
      </wsdl:binding>
    - <wsdl:binding name="SQLplusWebServiceSoap12" type="tns:SQLplusWebServiceSoap">
      <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" />
    - <wsdl:operation name="ExecuteSQL">
      <soap12:operation soapAction="http://www.aspentech.com/SQLplus.WebService/ExecuteSQL" style="document" />
    - <wsdl:input>
      <soap12:body use="literal" />
      </wsdl:input>
    - <wsdl:output>
      <soap12:body use="literal" />
      </wsdl:output>
      </wsdl:operation>
      </wsdl:binding>
    - <wsdl:service name="SQLplusWebService">
    - <wsdl:port name="SQLplusWebServiceSoap" binding="tns:SQLplusWebServiceSoap">
      <soap:address location="http://serverb:13080/sqlpluswebservice/sqlpluswebservice.asmx" />
      </wsdl:port>
    - <wsdl:port name="SQLplusWebServiceSoap12" binding="tns:SQLplusWebServiceSoap12">
      <soap12:address location="http://serverb:13080/sqlpluswebservice/sqlpluswebservice.asmx" />
      </wsdl:port>
      </wsdl:service>
      </wsdl:definitions>
    Please advise me on how to fix the probelm. And please let me know any additional information is needed. Greatly appreciated~
    Best regards,
    Lawrence
    Edited by: UMeng Lai on Feb 6, 2009 4:07 PM

    Hi all,
    We're using MII 11.5 and trying to call a web service from a Aspen Watch server through the web service block in transaction. The web service enclosed a function call ExecuteSQL which will accept a sql query function and return a set of Data. Now, using the same web service on two different servers, we got a success(server A) and a failure(Server B). On the failed call, right in the first page of enter a URL, it will return a "SOAP Service could not be loaded: The element type 'META' must be terminated by the machine end-tag '</META>'" error.
    According to the admin of the web server, the web service on both servers can be called correctly when he created two simple ASP pages. After serious testing, he thought that the only reason should be MII may not be compatible with .Net 2.0 binding web service. The following is some comparison we made to the two servers.
                                                                                    Server A / Server B / Error, if applicable
    .Net Framework installed on MII server:                                 1.1, 2.0 /      1.1, 2.0     
    .Net Binding:                                                                          1.1 /               2.0
    IIS version on MII server:                                                 6 /                 6     
    From MII server broser to Server A web service:                 Yes /      Yes     
    From MII server browser to Server B web service:                 No /     No /      Return on web "The test form is only available for requests from the local machine"
    From localhost browser to Server A web service:                 n/a //     Yes     
    From localhost browser to Server B web service:                 Yes //     n/a     
    From PC browser to Server B web service:                                No /        Yes /     Return on web "The test form is only available for requests from the local machine"
    Credentials required to run web service:                                 No /     Yes /     
    The following are the SOAP generated:
    Server A
      <?xml version="1.0" encoding="utf-8" ?>
    - <wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://www.aspentech.com/SQLplus.WebService/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" targetNamespace="http://www.aspentech.com/SQLplus.WebService/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
    - <wsdl:types>
    - <s:schema elementFormDefault="qualified" targetNamespace="http://www.aspentech.com/SQLplus.WebService/">
    - <s:element name="ExecuteSQL">
    - <s:complexType>
    - <s:sequence>
      <s:element minOccurs="0" maxOccurs="1" name="command" type="s:string" />
      </s:sequence>
      </s:complexType>
      </s:element>
    - <s:element name="ExecuteSQLResponse">
    - <s:complexType>
    - <s:sequence>
      <s:element minOccurs="0" maxOccurs="1" name="ExecuteSQLResult" type="s:string" />
      </s:sequence>
      </s:complexType>
      </s:element>
      <s:element name="string" nillable="true" type="s:string" />
      </s:schema>
      </wsdl:types>
    - <wsdl:message name="ExecuteSQLSoapIn">
      <wsdl:part name="parameters" element="tns:ExecuteSQL" />
      </wsdl:message>
    - <wsdl:message name="ExecuteSQLSoapOut">
      <wsdl:part name="parameters" element="tns:ExecuteSQLResponse" />
      </wsdl:message>
    - <wsdl:message name="ExecuteSQLHttpGetIn">
      <wsdl:part name="command" type="s:string" />
      </wsdl:message>
    - <wsdl:message name="ExecuteSQLHttpGetOut">
      <wsdl:part name="Body" element="tns:string" />
      </wsdl:message>
    - <wsdl:message name="ExecuteSQLHttpPostIn">
      <wsdl:part name="command" type="s:string" />
      </wsdl:message>
    - <wsdl:message name="ExecuteSQLHttpPostOut">
      <wsdl:part name="Body" element="tns:string" />
      </wsdl:message>
    - <wsdl:portType name="SQLplusWebServiceSoap">
    - <wsdl:operation name="ExecuteSQL">
      <wsdl:input message="tns:ExecuteSQLSoapIn" />
      <wsdl:output message="tns:ExecuteSQLSoapOut" />
      </wsdl:operation>
      </wsdl:portType>
    - <wsdl:portType name="SQLplusWebServiceHttpGet">
    - <wsdl:operation name="ExecuteSQL">
      <wsdl:input message="tns:ExecuteSQLHttpGetIn" />
      <wsdl:output message="tns:ExecuteSQLHttpGetOut" />
      </wsdl:operation>
      </wsdl:portType>
    - <wsdl:portType name="SQLplusWebServiceHttpPost">
    - <wsdl:operation name="ExecuteSQL">
      <wsdl:input message="tns:ExecuteSQLHttpPostIn" />
      <wsdl:output message="tns:ExecuteSQLHttpPostOut" />
      </wsdl:operation>
      </wsdl:portType>
    - <wsdl:binding name="SQLplusWebServiceSoap" type="tns:SQLplusWebServiceSoap">
      <soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
    - <wsdl:operation name="ExecuteSQL">
      <soap:operation soapAction="http://www.aspentech.com/SQLplus.WebService/ExecuteSQL" style="document" />
    - <wsdl:input>
      <soap:body use="literal" />
      </wsdl:input>
    - <wsdl:output>
      <soap:body use="literal" />
      </wsdl:output>
      </wsdl:operation>
      </wsdl:binding>
    - <wsdl:binding name="SQLplusWebServiceSoap12" type="tns:SQLplusWebServiceSoap">
      <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" />
    - <wsdl:operation name="ExecuteSQL">
      <soap12:operation soapAction="http://www.aspentech.com/SQLplus.WebService/ExecuteSQL" style="document" />
    - <wsdl:input>
      <soap12:body use="literal" />
      </wsdl:input>
    - <wsdl:output>
      <soap12:body use="literal" />
      </wsdl:output>
      </wsdl:operation>
      </wsdl:binding>
    - <wsdl:binding name="SQLplusWebServiceHttpGet" type="tns:SQLplusWebServiceHttpGet">
      <http:binding verb="GET" />
    - <wsdl:operation name="ExecuteSQL">
      <http:operation location="/ExecuteSQL" />
    - <wsdl:input>
      <http:urlEncoded />
      </wsdl:input>
    - <wsdl:output>
      <mime:mimeXml part="Body" />
      </wsdl:output>
      </wsdl:operation>
      </wsdl:binding>
    - <wsdl:binding name="SQLplusWebServiceHttpPost" type="tns:SQLplusWebServiceHttpPost">
      <http:binding verb="POST" />
    - <wsdl:operation name="ExecuteSQL">
      <http:operation location="/ExecuteSQL" />
    - <wsdl:input>
      <mime:content type="application/x-www-form-urlencoded" />
      </wsdl:input>
    - <wsdl:output>
      <mime:mimeXml part="Body" />
      </wsdl:output>
      </wsdl:operation>
      </wsdl:binding>
    - <wsdl:service name="SQLplusWebService">
    - <wsdl:port name="SQLplusWebServiceSoap" binding="tns:SQLplusWebServiceSoap">
      <soap:address location="http://clkaspenwatch:13080/sqlpluswebservice/sqlpluswebservice.asmx" />
      </wsdl:port>
    - <wsdl:port name="SQLplusWebServiceSoap12" binding="tns:SQLplusWebServiceSoap12">
      <soap12:address location="http://clkaspenwatch:13080/sqlpluswebservice/sqlpluswebservice.asmx" />
      </wsdl:port>
    - <wsdl:port name="SQLplusWebServiceHttpGet" binding="tns:SQLplusWebServiceHttpGet">
      <http:address location="http://servera:13080/sqlpluswebservice/sqlpluswebservice.asmx" />
      </wsdl:port>
    - <wsdl:port name="SQLplusWebServiceHttpPost" binding="tns:SQLplusWebServiceHttpPost">
      <http:address location="http://servera:13080/sqlpluswebservice/sqlpluswebservice.asmx" />
      </wsdl:port>
      </wsdl:service>
      </wsdl:definitions>
    Server B
      <?xml version="1.0" encoding="utf-8" ?>
    - <wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://www.aspentech.com/SQLplus.WebService/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" targetNamespace="http://www.aspentech.com/SQLplus.WebService/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
    - <wsdl:types>
    - <s:schema elementFormDefault="qualified" targetNamespace="http://www.aspentech.com/SQLplus.WebService/">
    - <s:element name="ExecuteSQL">
    - <s:complexType>
    - <s:sequence>
      <s:element minOccurs="0" maxOccurs="1" name="command" type="s:string" />
      </s:sequence>
      </s:complexType>
      </s:element>
    - <s:element name="ExecuteSQLResponse">
    - <s:complexType>
    - <s:sequence>
      <s:element minOccurs="0" maxOccurs="1" name="ExecuteSQLResult" type="s:string" />
      </s:sequence>
      </s:complexType>
      </s:element>
      </s:schema>
      </wsdl:types>
    - <wsdl:message name="ExecuteSQLSoapIn">
      <wsdl:part name="parameters" element="tns:ExecuteSQL" />
      </wsdl:message>
    - <wsdl:message name="ExecuteSQLSoapOut">
      <wsdl:part name="parameters" element="tns:ExecuteSQLResponse" />
      </wsdl:message>
    - <wsdl:portType name="SQLplusWebServiceSoap">
    - <wsdl:operation name="ExecuteSQL">
      <wsdl:input message="tns:ExecuteSQLSoapIn" />
      <wsdl:output message="tns:ExecuteSQLSoapOut" />
      </wsdl:operation>
      </wsdl:portType>
    - <wsdl:binding name="SQLplusWebServiceSoap" type="tns:SQLplusWebServiceSoap">
      <soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
    - <wsdl:operation name="ExecuteSQL">
      <soap:operation soapAction="http://www.aspentech.com/SQLplus.WebService/ExecuteSQL" style="document" />
    - <wsdl:input>
      <soap:body use="literal" />
      </wsdl:input>
    - <wsdl:output>
      <soap:body use="literal" />
      </wsdl:output>
      </wsdl:operation>
      </wsdl:binding>
    - <wsdl:binding name="SQLplusWebServiceSoap12" type="tns:SQLplusWebServiceSoap">
      <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" />
    - <wsdl:operation name="ExecuteSQL">
      <soap12:operation soapAction="http://www.aspentech.com/SQLplus.WebService/ExecuteSQL" style="document" />
    - <wsdl:input>
      <soap12:body use="literal" />
      </wsdl:input>
    - <wsdl:output>
      <soap12:body use="literal" />
      </wsdl:output>
      </wsdl:operation>
      </wsdl:binding>
    - <wsdl:service name="SQLplusWebService">
    - <wsdl:port name="SQLplusWebServiceSoap" binding="tns:SQLplusWebServiceSoap">
      <soap:address location="http://serverb:13080/sqlpluswebservice/sqlpluswebservice.asmx" />
      </wsdl:port>
    - <wsdl:port name="SQLplusWebServiceSoap12" binding="tns:SQLplusWebServiceSoap12">
      <soap12:address location="http://serverb:13080/sqlpluswebservice/sqlpluswebservice.asmx" />
      </wsdl:port>
      </wsdl:service>
      </wsdl:definitions>
    Please advise me on how to fix the probelm. And please let me know any additional information is needed. Greatly appreciated~
    Best regards,
    Lawrence
    Edited by: UMeng Lai on Feb 6, 2009 4:07 PM

  • Help needed in calling a Web service

    Hi,
    I want to call a web service from my component. The called web service might have different names, therefore I don't want to use the proxy class way.
    I am facing problem in parsing the input parameters from the wsdl file. I have attached the wsdl file at the end.
    I am using the javax.wsdl.xml.WSDLReader(axis). I have been able to parse all the bindings, ports and messages but
    1. i am not able to parse the wsdl:types to obtain the input parameters
    //javax.wsdl.Operation op obtained from the port which alternatively obtained from Definition
    Message inputs = op.getInput().getMessage();
    Part part = null;
    // let's find the input params
    Map inputParts = inputs.getParts();
    // create the object array which Axis will use to pass in the parameters
    inputParams = new Object[inputParts.size()];
    s = inputParts.keySet();
    it = s.iterator();
    int i = 0;
    while(it.hasNext())
    part = (Part) inputParts.get(it.next());
    Afetr performing this, i have no clue as to how to parse the input parameters.
    2. How will i generate the java Objects array from these input parameters to pass to the Call.invoke function, i.e.
    Call call = (Call) service.createCall();
    call.setOperation(portQN, operationName);
    Object ret = (Integer) call.invoke(inputParams);
    The function takes an object[] as input but since i have complex types involved in wsdl, so how will this object array needs to be populated
    WSDL file:
    <?xml version="1.0" encoding="UTF-8" ?>
    <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:ns1="http://org.apache.axis2/xsd" xmlns:ns="http://V4_0.testcenter8" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:ax258="http://testcenter8.V4_0.testcenter8/xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ax257="http://V4_0.testcenter8/xsd" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" targetNamespace="http://V4_0.testcenter8">
    <wsdl:types>
    <xs:schema xmlns:ax260="http://V4_0.testcenter8/xsd" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://V4_0.testcenter8">
    <xs:import namespace="http://V4_0.testcenter8/xsd" />
    <xs:element name="executeRuleset">
    <xs:complexType>
    <xs:sequence>
    <xs:element minOccurs="0" name="param0" nillable="true" type="ax257:testcenter8_V4_0_Req" />
    </xs:sequence>
    </xs:complexType>
    </xs:element>
    <xs:element name="executeRulesetResponse">
    <xs:complexType>
    <xs:sequence>
    <xs:element minOccurs="0" name="return" nillable="true" type="ax257:testcenter8_V4_0_Resp" />
    </xs:sequence>
    </xs:complexType>
    </xs:element>
    </xs:schema>
    <xs:schema xmlns:ax259="http://testcenter8.V4_0.testcenter8/xsd" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://V4_0.testcenter8/xsd">
    <xs:import namespace="http://testcenter8.V4_0.testcenter8/xsd" />
    <xs:complexType name="testcenter8_V4_0_Req">
    <xs:sequence>
    <xs:element minOccurs="0" name="cabinetName" nillable="true" type="xs:string" />
    <xs:element minOccurs="0" name="inputsobj" nillable="true" type="ax258:Inputs" />
    <xs:element minOccurs="0" name="loginReqd" type="xs:boolean" />
    <xs:element minOccurs="0" name="outputsobj" nillable="true" type="ax258:Outputs" />
    <xs:element minOccurs="0" name="password" nillable="true" type="xs:string" />
    <xs:element minOccurs="0" name="userName" nillable="true" type="xs:string" />
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="testcenter8_V4_0_Resp">
    <xs:sequence>
    <xs:element minOccurs="0" name="inputsobj" nillable="true" type="ax258:Inputs" />
    <xs:element minOccurs="0" name="outputsobj" nillable="true" type="ax258:Outputs" />
    </xs:sequence>
    </xs:complexType>
    </xs:schema>
    <xs:schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://testcenter8.V4_0.testcenter8/xsd">
    <xs:complexType name="Inputs">
    <xs:sequence>
    <xs:element minOccurs="0" name="description" nillable="true" type="xs:string" />
    <xs:element minOccurs="0" name="subject" nillable="true" type="xs:string" />
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="Outputs">
    <xs:sequence>
    <xs:element minOccurs="0" name="category" nillable="true" type="xs:string" />
    <xs:element minOccurs="0" name="massRequestType" type="xs:int" />
    <xs:element minOccurs="0" name="subCategory" nillable="true" type="xs:string" />
    </xs:sequence>
    </xs:complexType>
    </xs:schema>
    </wsdl:types>
    <wsdl:message name="executeRulesetRequest">
    <wsdl:part name="parameters" element="ns:executeRuleset" />
    </wsdl:message>
    <wsdl:message name="executeRulesetResponse">
    <wsdl:part name="parameters" element="ns:executeRulesetResponse" />
    </wsdl:message>
    <wsdl:portType name="testcenter8_V4_0WebServicePortType">
    <wsdl:operation name="executeRuleset">
    <wsdl:input message="ns:executeRulesetRequest" wsaw:Action="urn:executeRuleset" />
    <wsdl:output message="ns:executeRulesetResponse" wsaw:Action="urn:executeRulesetResponse" />
    </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="testcenter8_V4_0WebServiceSoap11Binding" type="ns:testcenter8_V4_0WebServicePortType">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
    <wsdl:operation name="executeRuleset">
    <soap:operation soapAction="urn:executeRuleset" style="document" />
    <wsdl:input>
    <soap:body use="literal" />
    </wsdl:input>
    <wsdl:output>
    <soap:body use="literal" />
    </wsdl:output>
    </wsdl:operation>
    </wsdl:binding>
    <wsdl:binding name="testcenter8_V4_0WebServiceSoap12Binding" type="ns:testcenter8_V4_0WebServicePortType">
    <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
    <wsdl:operation name="executeRuleset">
    <soap12:operation soapAction="urn:executeRuleset" style="document" />
    <wsdl:input>
    <soap12:body use="literal" />
    </wsdl:input>
    <wsdl:output>
    <soap12:body use="literal" />
    </wsdl:output>
    </wsdl:operation>
    </wsdl:binding>
    <wsdl:binding name="testcenter8_V4_0WebServiceHttpBinding" type="ns:testcenter8_V4_0WebServicePortType">
    <http:binding verb="POST" />
    <wsdl:operation name="executeRuleset">
    <http:operation location="testcenter8_V4_0WebService/executeRuleset" />
    <wsdl:input>
    <mime:content type="text/xml" part="executeRuleset" />
    </wsdl:input>
    <wsdl:output>
    <mime:content type="text/xml" part="executeRuleset" />
    </wsdl:output>
    </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="testcenter8_V4_0WebService">
    <wsdl:port name="testcenter8_V4_0WebServiceHttpSoap11Endpoint" binding="ns:testcenter8_V4_0WebServiceSoap11Binding">
    <soap:address location="http://192.168.56.89:8080/axis2/services/testcenter8_V4_0WebService.testcenter8_V4_0WebServiceHttpSoap11Endpoint/" />
    </wsdl:port>
    <wsdl:port name="testcenter8_V4_0WebServiceHttpSoap12Endpoint" binding="ns:testcenter8_V4_0WebServiceSoap12Binding">
    <soap12:address location="http://192.168.56.89:8080/axis2/services/testcenter8_V4_0WebService.testcenter8_V4_0WebServiceHttpSoap12Endpoint/" />
    </wsdl:port>
    <wsdl:port name="testcenter8_V4_0WebServiceHttpEndpoint" binding="ns:testcenter8_V4_0WebServiceHttpBinding">
    <http:address location="http://192.168.56.89:8080/axis2/services/testcenter8_V4_0WebService.testcenter8_V4_0WebServiceHttpEndpoint/" />
    </wsdl:port>
    </wsdl:service>
    </wsdl:definitions>
    Regards
    Nitin

    An update -
    I want to call a web service from my component. The called web service might have different names, therefore I don't want to use the proxy class way.
    I am parsing the WSDL file and obtaining the different parameters. But i am having problem in passing the parameters(receiving as well) to the web service and i am not able to find any good refernce on the internet, i am getting the following exception:
    org.xml.sax.SAXException: Invalid element in javax.xml.rpc.namespace.QName - inputsobj
    at org.apache.axis.encoding.ser.BeanDeserializer.onStartChild(Unknown Source)
    at org.apache.axis.AxisFault.makeFault(Unknown Source)
    at org.apache.axis.encoding.DeserializationContextImpl.startElement(Unknown Source)
    at org.apache.axis.message.SAX2EventRecorder.replay(Unknown Source)
    at org.apache.axis.message.MessageElement.publishToHandler(Unknown Source)
    at org.apache.axis.client.Call.invoke(Unknown Source)
    at org.apache.axis.message.RPCElement.deserialize(Unknown Source)
    at org.apache.axis.message.RPCElement.getParams(Unknown Source)
    at org.apache.axis.client.Call.invoke(Unknown Source)
    at org.apache.axis.client.Call.invoke(Unknown Source)
    at org.apache.axis.client.Call.invoke(Unknown Source)
    at org.apache.axis.client.Call.invoke(Unknown Source)
    at javaapplication17.Invoke.axisInvoke(Invoke.java:639)
    at javaapplication17.Invoke.parseWSDL(Invoke.java:423)
    at javaapplication17.Invoke.run(Invoke.java:76)
    at javaapplication17.Invoke.main(Invoke.java:64)
    at org.apache.axis.client.Call.invoke(Unknown Source)
    Error invoking service : org.xml.sax.SAXException: Invalid element in javax.xml.rpc.namespace.QName - inputsobj
    at javaapplication17.Invoke.axisInvoke(Invoke.java:639)
    at javaapplication17.Invoke.parseWSDL(Invoke.java:423)
    at javaapplication17.Invoke.run(Invoke.java:76)
    at javaapplication17.Invoke.main(Invoke.java:64)
    Caused by: org.xml.sax.SAXException: Invalid element in javax.xml.rpc.namespace.QName - inputsobj
    at org.apache.axis.encoding.ser.BeanDeserializer.onStartChild(Unknown Source)
    at org.apache.axis.encoding.DeserializationContextImpl.startElement(Unknown Source)
    at org.apache.axis.message.SAX2EventRecorder.replay(Unknown Source)
    at org.apache.axis.message.MessageElement.publishToHandler(Unknown Source)
    at org.apache.axis.message.RPCElement.deserialize(Unknown Source)
    at org.apache.axis.message.RPCElement.getParams(Unknown Source)
    ... 7 more
    Following is the code snippet and the passed values to the function:
    Parameters passed to the test function:
    targetNamespace = "http://V5_0.testcenter8"
    serviceName = "testcenter8_V5_0WebServiceHttpSoap11Endpoint"
    portName = "http://V5_0.testcenter8:testcenter8_V5_0WebService"
    operationName = "executeRuleset"
    arrListParameters; //obtained by parsing the XSD using XMLSchema(XSD created from wsdl types tag)
    implURI = "http://192.168.56.89:8080/axis2/services/testcenter8_V5_0WebService?wsdl"
    test function:
    NOTE:some things have been hardcoded.
    public void axisInvoke(String targetNamespace, String serviceName, String portName,
    String operationName, ArrayList<Parameter> arrListParameters, String implURI)
    try
    // first, due to a funny Axis idiosyncracy we must strip portName of
    // it's target namespace so we can pass it in as targetNamespace, localPart
    int index = portName.indexOf(":", portName.indexOf("http://") + new String("http://").length());
    String portNamespace = portName.substring(0, index);
    portName = portName.substring(index == 0 ? index : index + 1); // to strip the :
    javax.xml.rpc.namespace.QName serviceQN = new javax.xml.rpc.namespace.QName(portNamespace, portName);
    org.apache.axis.client.Service service = new org.apache.axis.client.Service(new URL(implURI), serviceQN);
    javax.xml.rpc.namespace.QName portQN = new javax.xml.rpc.namespace.QName(targetNamespace, serviceName);
    // This Call object will be used the invocation
    Call call = (Call) service.createCall();
    // Now make the call...
    System.out.println("Invoking service >> " + serviceName + " <<...");
    //call.setOperation(portQN, operationName); //do not work
    call.setOperationName(new javax.xml.rpc.namespace.QName("http://V5_0.testcenter8", "executeRuleset"));
    call.removeAllParameters();// why there is parameters already added to the list of parameters
    //call.addParameter(new javax.xml.rpc.namespace.QName(strNameSpaceURI, strParamName), org.apache.axis.Constants.XSD_STRING, ParameterMode.PARAM_MODE_INOUT);
    ArrayList<Object> arrListInputParameters = new ArrayList<Object>();
    for(int i = 0; i < arrListParameters.size(); i++)
    String strParamName = arrListParameters.get(i).strParamName;
    String strParamType = arrListParameters.get(i).strParamType;
    String strNameSpaceURI = arrListParameters.get(i).strParamNameSpaceURI;
    if(strNameSpaceURI.compareToIgnoreCase("http://www.w3.org/2001/XMLSchema") == 0)
    boolean isInParam = true;
    if(strParamName.compareToIgnoreCase("cabinetName") == 0)
    call.addParameter(new javax.xml.rpc.namespace.QName(strNameSpaceURI, strParamName), org.apache.axis.Constants.XSD_STRING, ParameterMode.PARAM_MODE_INOUT);
    arrListInputParameters.add("testcenter8");
    else if(strParamName.compareToIgnoreCase("loginReqd") == 0)
    call.addParameter(new javax.xml.rpc.namespace.QName(strNameSpaceURI, strParamName), org.apache.axis.Constants.XSD_BOOLEAN, ParameterMode.PARAM_MODE_INOUT);
    arrListInputParameters.add(false);
    else if(strParamName.compareToIgnoreCase("password") == 0)
    call.addParameter(new javax.xml.rpc.namespace.QName(strNameSpaceURI, strParamName), org.apache.axis.Constants.XSD_STRING, ParameterMode.PARAM_MODE_INOUT);
    arrListInputParameters.add("D@nger0us");
    else if(strParamName.compareToIgnoreCase("userName") == 0)
    call.addParameter(new javax.xml.rpc.namespace.QName(strNameSpaceURI, strParamName), org.apache.axis.Constants.XSD_STRING, ParameterMode.PARAM_MODE_INOUT);
    arrListInputParameters.add("sanjeev");
    else if(strParamName.compareToIgnoreCase("description") == 0)
    call.addParameter(new javax.xml.rpc.namespace.QName(strNameSpaceURI, strParamName), org.apache.axis.Constants.XSD_STRING, ParameterMode.PARAM_MODE_INOUT);
    arrListInputParameters.add("Change Address");
    else if(strParamName.compareToIgnoreCase("subject") == 0)
    call.addParameter(new javax.xml.rpc.namespace.QName(strNameSpaceURI, strParamName), org.apache.axis.Constants.XSD_STRING, ParameterMode.PARAM_MODE_INOUT);
    arrListInputParameters.add("Credit Card");
    else if(strParamName.compareToIgnoreCase("category") == 0)
    call.addParameter(new javax.xml.rpc.namespace.QName(strNameSpaceURI, strParamName), org.apache.axis.Constants.XSD_STRING, ParameterMode.PARAM_MODE_INOUT);
    arrListInputParameters.add("");
    isInParam = false;
    else if(strParamName.compareToIgnoreCase("massRequestType") == 0)
    call.addParameter(new javax.xml.rpc.namespace.QName(strNameSpaceURI, strParamName), org.apache.axis.Constants.XSD_INTEGER, ParameterMode.PARAM_MODE_INOUT);
    arrListInputParameters.add((int) 1);
    isInParam = false;
    else
    call.addParameter(new javax.xml.rpc.namespace.QName(strNameSpaceURI, strParamName), org.apache.axis.Constants.XSD_STRING, ParameterMode.PARAM_MODE_INOUT);
    arrListInputParameters.add("");
    isInParam = false;
    /*if(isInParam)
    call.addParameter(strParamName, org.apache.axis.Constants.XSD_STRING, ParameterMode.PARAM_MODE_INOUT);
    //call.addParameter(strParamName, new javax.xml.rpc.namespace.QName(strNameSpaceURI, strParamName), ParameterMode.PARAM_MODE_INOUT);
    else
    call.addParameter(strParamName, new javax.xml.rpc.namespace.QName(strNameSpaceURI, strParamName), ParameterMode.PARAM_MODE_INOUT);
    /*inputParams = new Object[arrListInputParameters.size() + 1];
    inputParams[0] = "";
    for(int i = 1; i <= arrListInputParameters.size(); i++)
    inputParams[i] = arrListInputParameters.get(i - 1);
    inputParams = new Object[arrListInputParameters.size()];
    for(int i = 0; i < arrListInputParameters.size(); i++)
    inputParams[i] = arrListInputParameters.get(i);
    call.setReturnType(org.apache.axis.Constants.XSD_QNAME);
    //call.setReturnType(org.apache.axis.Constants.XSD_ANYTYPE);
    call.setTargetEndpointAddress(new URL("http://192.168.56.89:8080/axis2/services/testcenter8_V5_0WebService.testcenter8_V5_0WebServiceHttpSoap11Endpoint"));
    Object ret = call.invoke(inputParams);
    System.out.println("Result returned from call to " + serviceName + " -- " + ret);
    System.out.println("Finished");
    catch(java.net.MalformedURLException e)
    System.out.println("Error invoking service : " + e);
    e.printStackTrace();
    catch(javax.xml.rpc.ServiceException e2)
    System.out.println("Error invoking service : " + e2);
    e2.printStackTrace();
    catch(java.rmi.RemoteException e3)
    System.out.println("Error invoking service : " + e3);
    e3.printStackTrace();
    WSDL file:
    WSDL file:
    <?xml version="1.0" encoding="UTF-8" ?>
    <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:ns1="http://org.apache.axis2/xsd" xmlns:ns="http://V4_0.testcenter8" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:ax258="http://testcenter8.V4_0.testcenter8/xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ax257="http://V4_0.testcenter8/xsd" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" targetNamespace="http://V4_0.testcenter8">
    <wsdl:types>
    <xs:schema xmlns:ax260="http://V4_0.testcenter8/xsd" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://V4_0.testcenter8">
    <xs:import namespace="http://V4_0.testcenter8/xsd" />
    <xs:element name="executeRuleset">
    <xs:complexType>
    <xs:sequence>
    <xs:element minOccurs="0" name="param0" nillable="true" type="ax257:testcenter8_V4_0_Req" />
    </xs:sequence>
    </xs:complexType>
    </xs:element>
    <xs:element name="executeRulesetResponse">
    <xs:complexType>
    <xs:sequence>
    <xs:element minOccurs="0" name="return" nillable="true" type="ax257:testcenter8_V4_0_Resp" />
    </xs:sequence>
    </xs:complexType>
    </xs:element>
    </xs:schema>
    <xs:schema xmlns:ax259="http://testcenter8.V4_0.testcenter8/xsd" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://V4_0.testcenter8/xsd">
    <xs:import namespace="http://testcenter8.V4_0.testcenter8/xsd" />
    <xs:complexType name="testcenter8_V4_0_Req">
    <xs:sequence>
    <xs:element minOccurs="0" name="cabinetName" nillable="true" type="xs:string" />
    <xs:element minOccurs="0" name="inputsobj" nillable="true" type="ax258:Inputs" />
    <xs:element minOccurs="0" name="loginReqd" type="xs:boolean" />
    <xs:element minOccurs="0" name="outputsobj" nillable="true" type="ax258:Outputs" />
    <xs:element minOccurs="0" name="password" nillable="true" type="xs:string" />
    <xs:element minOccurs="0" name="userName" nillable="true" type="xs:string" />
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="testcenter8_V4_0_Resp">
    <xs:sequence>
    <xs:element minOccurs="0" name="inputsobj" nillable="true" type="ax258:Inputs" />
    <xs:element minOccurs="0" name="outputsobj" nillable="true" type="ax258:Outputs" />
    </xs:sequence>
    </xs:complexType>
    </xs:schema>
    <xs:schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://testcenter8.V4_0.testcenter8/xsd">
    <xs:complexType name="Inputs">
    <xs:sequence>
    <xs:element minOccurs="0" name="description" nillable="true" type="xs:string" />
    <xs:element minOccurs="0" name="subject" nillable="true" type="xs:string" />
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="Outputs">
    <xs:sequence>
    <xs:element minOccurs="0" name="category" nillable="true" type="xs:string" />
    <xs:element minOccurs="0" name="massRequestType" type="xs:int" />
    <xs:element minOccurs="0" name="subCategory" nillable="true" type="xs:string" />
    </xs:sequence>
    </xs:complexType>
    </xs:schema>
    </wsdl:types>
    <wsdl:message name="executeRulesetRequest">
    <wsdl:part name="parameters" element="ns:executeRuleset" />
    </wsdl:message>
    <wsdl:message name="executeRulesetResponse">
    <wsdl:part name="parameters" element="ns:executeRulesetResponse" />
    </wsdl:message>
    <wsdl:portType name="testcenter8_V4_0WebServicePortType">
    <wsdl:operation name="executeRuleset">
    <wsdl:input message="ns:executeRulesetRequest" wsaw:Action="urn:executeRuleset" />
    <wsdl:output message="ns:executeRulesetResponse" wsaw:Action="urn:executeRulesetResponse" />
    </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="testcenter8_V4_0WebServiceSoap11Binding" type="ns:testcenter8_V4_0WebServicePortType">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
    <wsdl:operation name="executeRuleset">
    <soap:operation soapAction="urn:executeRuleset" style="document" />
    <wsdl:input>
    <soap:body use="literal" />
    </wsdl:input>
    <wsdl:output>
    <soap:body use="literal" />
    </wsdl:output>
    </wsdl:operation>
    </wsdl:binding>
    <wsdl:binding name="testcenter8_V4_0WebServiceSoap12Binding" type="ns:testcenter8_V4_0WebServicePortType">
    <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
    <wsdl:operation name="executeRuleset">
    <soap12:operation soapAction="urn:executeRuleset" style="document" />
    <wsdl:input>
    <soap12:body use="literal" />
    </wsdl:input>
    <wsdl:output>
    <soap12:body use="literal" />
    </wsdl:output>
    </wsdl:operation>
    </wsdl:binding>
    <wsdl:binding name="testcenter8_V4_0WebServiceHttpBinding" type="ns:testcenter8_V4_0WebServicePortType">
    <http:binding verb="POST" />
    <wsdl:operation name="executeRuleset">
    <http:operation location="testcenter8_V4_0WebService/executeRuleset" />
    <wsdl:input>
    <mime:content type="text/xml" part="executeRuleset" />
    </wsdl:input>
    <wsdl:output>
    <mime:content type="text/xml" part="executeRuleset" />
    </wsdl:output>
    </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="testcenter8_V4_0WebService">
    <wsdl:port name="testcenter8_V4_0WebServiceHttpSoap11Endpoint" binding="ns:testcenter8_V4_0WebServiceSoap11Binding">
    <soap:address location="http://192.168.56.89:8080/axis2/services/testcenter8_V4_0WebService.testcenter8_V4_0WebServiceHttpSoap11Endpoint/" />
    </wsdl:port>
    <wsdl:port name="testcenter8_V4_0WebServiceHttpSoap12Endpoint" binding="ns:testcenter8_V4_0WebServiceSoap12Binding">
    <soap12:address location="http://192.168.56.89:8080/axis2/services/testcenter8_V4_0WebService.testcenter8_V4_0WebServiceHttpSoap12Endpoint/" />
    </wsdl:port>
    <wsdl:port name="testcenter8_V4_0WebServiceHttpEndpoint" binding="ns:testcenter8_V4_0WebServiceHttpBinding">
    <http:address location="http://192.168.56.89:8080/axis2/services/testcenter8_V4_0WebService.testcenter8_V4_0WebServiceHttpEndpoint/" />
    </wsdl:port>
    </wsdl:service>
    </wsdl:definitions>

  • QName error while calling a web service from Sourcing

    I need to call a web service from Sourcing script. The web service team has provided us the WSDL and I have generated the required stubs using wsimport and packaged the required java classes in a custom JAR. Now while calling a web method using this jar from my script, I am getting and exception. The exception message that I printed out was this:
    Caught exception e with msg Connection IO Exception. Check nested exception for details. (Connection
    IO Exception. Check nested exception for details. (Connection Exception; nested exception is:
    java.lang.IllegalArgumentException: cannot create QName from "null" or "" String).)
    The same jar and same code works fine when called from a standalone java program.
    I am not using or creating QName anywhere in my script. The only place where QName is used is in the generated java class and there it is created from the correct namespace URL
    Can anyone please help me out in figuring out what is the issue?

    This is the stack trace of the error:
    #2.0 #2014 05 08 09:02:30:915#+00#Error#com.sap.engine.services.webservices.espbase.client.bindings.impl.SOAPTransportBinding#
    #BC-ESI-WS-JAV-RT#webservices_lib#C000CF8242BA4B800000002100002648#2174850000000005#sap.com/E-Sourcing-Server#com.sap.engine.services.webservices.espbase.client.bindings.impl.SOAPTransportBinding#VAC53324#89##D811EE96D68E11E3C9E0000000212F82#3cf7fe38d68f11e3c963000000212f82#3cf7fe38d68f11e3c963000000212f82#0#Thread[RequestHandler.RqThread: fullsave,5,Dedicated_Application_Thread]#Plain##
    Connection IO Exception. Check nested exception for details. (Connection IO Exception. Check nested exception for details. (Connection Exception; nested exception is:
        java.lang.IllegalArgumentException: cannot create QName from "null" or "" String).).
    [EXCEPTION]
    com.sap.engine.services.webservices.espbase.client.bindings.exceptions.TransportBindingException: Connection IO Exception. Check nested exception for details. (Connection IO Exception. Check nested exception for details. (Connection Exception; nested exception is:
        java.lang.IllegalArgumentException: cannot create QName from "null" or "" String).).
        at com.sap.engine.services.webservices.espbase.client.bindings.impl.SOAPTransportBinding.writeSOAPRequestMessage(SOAPTransportBinding.java:256)
        at com.sap.engine.services.webservices.espbase.client.bindings.impl.SOAPTransportBinding.call_SOAP(SOAPTransportBinding.java:1318)
        at com.sap.engine.services.webservices.espbase.client.bindings.impl.SOAPTransportBinding.callWOLogging(SOAPTransportBinding.java:991)
        at com.sap.engine.services.webservices.espbase.client.bindings.impl.SOAPTransportBinding.call(SOAPTransportBinding.java:945)
        at com.sap.engine.services.webservices.espbase.client.jaxws.core.WSInvocationHandler.processTransportBindingCall(WSInvocationHandler.java:168)
        at com.sap.engine.services.webservices.espbase.client.jaxws.core.WSInvocationHandler.invokeSEISyncMethod(WSInvocationHandler.java:121)
        at com.sap.engine.services.webservices.espbase.client.jaxws.core.WSInvocationHandler.invokeSEIMethod(WSInvocationHandler.java:84)
        at com.sap.engine.services.webservices.espbase.client.jaxws.core.WSInvocationHandler.invoke(WSInvocationHandler.java:65)
        at $Proxy2539.grantOrganizationRoles(Unknown Source)
    I tested the same custom JAR, that is deployed in Sourcing, separately using a standalone java program and there it gave back the correct SOAP response

  • Issue in calling a web service from Apps instance

    Hi ,
    I have created a procedure to call a function which gives response by calling a web service URL.
    Requirement is,
    While calling this procedure , the response data has been stored in the table. This is working fine in the back end.
    Now , i call the same through concurrenet program . It is also getting stored but partially.. The exact data is missing ..other default tags are displayed in the column.
    PROCEUDRE:
    create or replace procedure cv_test_GetCityWeather_PROC(cityName in varchar2, country in varchar2 ,errbuf OUT nocopy VARCHAR2,retcode OUT nocopy VARCHAR2) is
    xmlResponse XmlType;
    begin
    xmlResponse := CV_Test_GetCityWeather(cityName,country);
    insert into xx_cv_test values(xmlResponse);
    fnd_file.put_line(fnd_file.log, 'hghghgh');
    EXCEPTION
    WHEN OTHERS THEN
    retcode := 'insert failed';
    fnd_file.put_line(fnd_file.log, 'response of the request is ' );
    --dbms_output.put_line('xmlResponse ' ||xmlResponse);
    end cv_test_getCityweather_proc;
    FUNCTION
    /*<TOAD_FILE_CHUNK>*/
    CREATE OR REPLACE function APPS.CV_Test_GetCityWeather( cityName varchar2, country varchar2 ) return XmlType is
    --// URL to call
    SOAP_URL constant varchar2(1000) := 'http://www.webservicex.net/globalweather.asmx';
    --// SOAP envelope template, containing $ substitution variables
    SOAP_ENVELOPE constant varchar2(32767) :=
    '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://www.webserviceX.NET">
    <soapenv:Header/>
    <soapenv:Body>
    <web:GetWeather>
    <web:CityName>$CITY</web:CityName>
    <web:CountryName>$COUNTRY</web:CountryName>
    </web:GetWeather>
    </soapenv:Body>
    </soapenv:Envelope>';
    --// we'll identify ourselves using an IE9/Windows7 generic browser signature
    C_USER_AGENT constant varchar2(4000) := 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)';
    --// these variables need to be set if web access
    --// is via a proxy server
    proxyServer varchar2(20) default null;
    proxyUser varchar2(20) default null;
    proxyPass varchar2(20) default null;
    --// our local variables
    soapEnvelope varchar2(32767);
    proxyURL varchar2(4000);
    request utl_http.req;
    response utl_http.resp;
    buffer varchar2(32767);
    soapResponse clob;
    xmlResponse XmlType;
    eof boolean;
    begin
    --// create the SOAP envelope
    soapEnvelope := replace( SOAP_ENVELOPE, '$CITY', cityName );
    soapEnvelope := replace( soapEnvelope, '$COUNTRY', country );
    --// our "browser" settings
    utl_http.set_response_error_check( true );
    utl_http.set_detailed_excp_support( true );
    utl_http.set_cookie_support( true );
    utl_http.set_transfer_timeout( 10 );
    utl_http.set_follow_redirect( 3 );
    utl_http.set_persistent_conn_support( true );
    --// configure for web proxy access if applicable
    if proxyServer is not null then
    proxyURL := 'http://'||proxyServer;
    if (proxyUser is not null) and (proxyPass is not null) then
    proxyURL := Replace( proxyURL, 'http://', 'http://'||proxyUser||':'||proxyPass||'@' );
    end if;
    utl_http.set_proxy( proxyURL, null );
    end if;
    --// make the POST call to the web service
    request := utl_http.begin_request( SOAP_URL, 'POST', utl_http.HTTP_VERSION_1_1 );
    utl_http.set_header( request, 'User-Agent', C_USER_AGENT );
    utl_http.set_header( request, 'Content-Type', 'text/xml; charset=utf-8' );
    utl_http.set_header( request, 'Content-Length', length(soapEnvelope) );
    utl_http.set_header( request, 'SoapAction', 'http://www.webserviceX.NET/GetWeather' );
    utl_http.write_text( request, soapEnvelope );
    --// read the web service HTTP response
    response := utl_http.get_response( request );
    dbms_lob.CreateTemporary( soapResponse, true );
    eof := false;
    loop
    exit when eof;
    begin
    utl_http.read_line( response, buffer, true );
    if length(buffer) > 0 then
    dbms_lob.WriteAppend(
    soapResponse,
    length(buffer),
    buffer
    end if;
    exception when utl_http.END_OF_BODY then
    eof := true;
    end;
    end loop;
    utl_http.end_response( response );
    --// as the SOAP responds with XML, we convert
    --// the response to XML
    xmlResponse := XmlType( soapResponse );
    --dbms_lob.FreeTemporary( soapResponse );
    --insert into xx_cv_test values(xmlResponse);
    return( xmlResponse );
    exception when OTHERS then
    if soapResponse is not null then
    dbms_lob.FreeTemporary( soapResponse );
    end if;
    raise;
    end;
    EXECUTION:
    select cv_test_GetCityWeather( 'Cape Town', 'South Africa' ) from dual
    Result is,
    <?xml version="1.0" encoding="UTF-8"?>
    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <soap:Body>
    <GetWeatherResponse xmlns="http://www.webserviceX.NET">
    <GetWeatherResult><?xml version="1.0" encoding="utf-16"?><CurrentWeather> <Location>Cape Town, Cape Town International Airport, South Africa (FACT) 33-59S 018-36E 0M</Location> <Time>May 28, 2013 - 03:00 AM EDT / 2013.05.28 0700 UTC</Time> <Wind> from the NNW (330 degrees) at 7 MPH (6 KT) (direction variable):0</Wind> <Visibility> 4 mile(s):0</Visibility> <SkyConditions> mostly cloudy</SkyConditions> <Temperature> 57 F (14 C)</Temperature> <DewPoint> 53 F (12 C)</DewPoint> <RelativeHumidity> 87%</RelativeHumidity> <Pressure> 30.03 in. Hg (1017 hPa)</Pressure> <Status>Success</Status></CurrentWeather></GetWeatherResult>
    </GetWeatherResponse>
    </soap:Body>
    </soap:Envelope>
    While running Concurrent Program, by providing PARAMETERS : Cape Town, South Africa,
    the result is ,
    <?xml version="1.0" encoding="UTF-8"?>
    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <soap:Body>
    <GetWeatherResponse xmlns="http://www.webserviceX.NET">
    <GetWeatherResult>Data Not Found</GetWeatherResult>
    </GetWeatherResponse>
    </soap:Body>
    </soap:Envelope>
    Why the outputs are different for the same procedure..
    Anybody , Please help me to fix this issue.
    Thanks
    Winsky

    duplicate post
    Please see
    Calling webservice from PLSQL
    Please confirm are you the one who post the above thread
    ;) AppsMAsti :)
    sharing is Caring

  • Urgent - How to call a Web Services from PLSQL - Please help

    Hello,
    I am very much new to WebServices, need to call web services through PLSQL. I have a urgent requirement, where i need to call the web services by passing from some paramters to it and the web services will return a varchar values as 'PASSED' or 'FAILED'.
    Can you please approch me the best way to start with.
    Thanks,
    Srikanth.

    Hi,
    I need to do it from PLSQL API's not from JAVA.
    I have started developing the code through UTIL_HTTP. Getting lots of error.
    Can you please guide me through these error.
    Below is the wsdl and a blcok where i am trying to retrive the value from webservice.
    Hope this will help you.
    Code:
    declare
    soap_request varchar2(30000);
    soap_respond varchar2(30000);
    http_req utl_http.req;
    http_resp utl_http.resp;
    resp XMLType;
    i integer;
    begin
    soap_request:= '<?xml version = "1.0" encoding = "UTF-8"?>
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <SOAP-ENV:Body>
    <ns1:soapCheckRequest1 wsdl:ns1="https://isportal-qa.iss.net/exportcompliancemanager/services/ExportCheckService" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
    <FirstName xsi:type="xsd:string">saddam</FirstName>
    <LastName xsi:type="xsd:string">hussein</LastName>
              <companyName xsi:type="xsd:string">samueladams</companyName>
              <address1 xsi:type="xsd:string">123 APT</address1>
              <address3 xsi:type="xsd:string">Atlanta</address3>
              <city xsi:type="xsd:string">uk</city>
              <stateOrRegion xsi:type="xsd:string">GA</stateOrRegion>
              <postalCode xsi:type="xsd:string">30338</postalCode>
              <email xsi:type="xsd:string">sj@samueladams</email>
              <isoCountryCode xsi:type="xsd:string">US</isoCountryCode>
              <endUserIP xsi:type="xsd:string">209.134.168.203</endUserIP>
    </ns1:soapCheckRequest1>
    </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    http_req:= utl_http.begin_request
    ( 'http://isportal-qa.iss.net/exportcompliancemanager/services/ExportCheckService'
    , 'POST'
    , 'HTTP/1.1'
    utl_http.set_header(http_req, 'Content-Type', 'text/xml'); -- since we are dealing with plain text in XML documents
    utl_http.set_header(http_req, 'Content-Length', length(soap_request));
    utl_http.set_header(http_req, 'SOAPAction', ''); -- required to specify this is a SOAP communication
    utl_http.write_text(http_req, soap_request);
    http_resp:= utl_http.get_response(http_req);
    DBMS_OUTPUT.PUT_LINE('-------utl_http.get_response---------------------');
    DBMS_OUTPUT.PUT_LINE('http_resp.status_code is :'||http_resp.status_code );
    DBMS_OUTPUT.PUT_LINE('http_resp.reason_phrase is :'||http_resp.reason_phrase);
    DBMS_OUTPUT.PUT_LINE('http_resp.http_version is :'||http_resp.http_version);
    DBMS_OUTPUT.PUT_LINE('http_resp.private_hndl is :'||http_resp.private_hndl);
    DBMS_OUTPUT.PUT_LINE('-------utl_http.get_response----------------------');
    utl_http.read_text(http_resp, soap_respond);
    utl_http.end_response(http_resp);
    resp:= XMLType.createXML(soap_respond);
    resp:= resp.extract('/soap:Envelop/soap:Body/child::node()'
    , 'xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"'
    i:=0;
    loop
    dbms_output.put_line(substr(soap_respond,1+ i*255,250));
    i:= i+1;
    if i*250> length(soap_respond)
    then
    exit;
    end if;
    end loop;
    end;
    Error Message
    http_resp.reason_phrase is :Internal Server Error
    http_resp.http_version is :HTTP/1.1
    http_resp.private_hndl is :0
    -------utl_http.get_response----------------------
    <?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><soapenv:Fault><faultco
    apenv:Server.userException</faultcode><faultstring>org.xml.sax.SAXParseException: The prefix &quot;ns1&quot; for element &quot;ns1:soapCheckRequest1&quot; is not bound.</faultstring><detail><ns1:hostname xmlns:ns1="http://xml.apache.org/axis/">atlcms
    2.iss.net</ns1:hostname></detail></soapenv:Fault></soapenv:Body></soapenv:Envelope>
    <?xml version="1.0" encoding="UTF-8" ?>
    - <wsdl:definitions targetNamespace="https://isportal-qa.iss.net/exportcompliancemanager/services/ExportCheckService" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="https://isportal-qa.iss.net/exportcompliancemanager/services/ExportCheckService" xmlns:intf="https://isportal-qa.iss.net/exportcompliancemanager/services/ExportCheckService" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    - <!--
    WSDL created by Apache Axis version: 1.3
    Built on Oct 05, 2005 (05:23:37 EDT)
    -->
    - <wsdl:message name="soapCheckResponse1">
    <wsdl:part name="soapCheckReturn" type="soapenc:string" />
    </wsdl:message>
    - <wsdl:message name="soapCheckRequest1">
    <wsdl:part name="firstName" type="soapenc:string" />
    <wsdl:part name="lastName" type="soapenc:string" />
    <wsdl:part name="companyName" type="soapenc:string" />
    <wsdl:part name="address1" type="soapenc:string" />
    <wsdl:part name="address2" type="soapenc:string" />
    <wsdl:part name="address3" type="soapenc:string" />
    <wsdl:part name="city" type="soapenc:string" />
    <wsdl:part name="stateOrRegion" type="soapenc:string" />
    <wsdl:part name="postalCode" type="soapenc:string" />
    <wsdl:part name="email" type="soapenc:string" />
    <wsdl:part name="phone" type="soapenc:string" />
    <wsdl:part name="isoCountryCode" type="soapenc:string" />
    <wsdl:part name="endUserId" type="soapenc:string" />
    <wsdl:part name="endUserIP" type="soapenc:string" />
    <wsdl:part name="endUserSession" type="soapenc:string" />
    <wsdl:part name="performGovCheck" type="xsd:boolean" />
    <wsdl:part name="sendEmailNotification" type="xsd:boolean" />
    <wsdl:part name="screeningLevelBasedOnSuppliedCountryCode" type="xsd:boolean" />
    <wsdl:part name="screeningLevelBasedOnEndUserIP" type="xsd:boolean" />
    <wsdl:part name="soundexMatch" type="xsd:boolean" />
    </wsdl:message>
    - <wsdl:message name="soapCheckRequest">
    <wsdl:part name="firstName" type="soapenc:string" />
    <wsdl:part name="lastName" type="soapenc:string" />
    <wsdl:part name="companyName" type="soapenc:string" />
    <wsdl:part name="address1" type="soapenc:string" />
    <wsdl:part name="address2" type="soapenc:string" />
    <wsdl:part name="address3" type="soapenc:string" />
    <wsdl:part name="city" type="soapenc:string" />
    <wsdl:part name="stateOrRegion" type="soapenc:string" />
    <wsdl:part name="postalCode" type="soapenc:string" />
    <wsdl:part name="email" type="soapenc:string" />
    <wsdl:part name="phone" type="soapenc:string" />
    <wsdl:part name="isoCountryCode" type="soapenc:string" />
    <wsdl:part name="endUserId" type="soapenc:string" />
    <wsdl:part name="endUserIP" type="soapenc:string" />
    <wsdl:part name="endUserSession" type="soapenc:string" />
    <wsdl:part name="performGovCheck" type="xsd:boolean" />
    <wsdl:part name="sendEmailNotification" type="xsd:boolean" />
    <wsdl:part name="screeningLevelBasedOnEndUserIP" type="xsd:boolean" />
    <wsdl:part name="soundexMatch" type="xsd:boolean" />
    </wsdl:message>
    - <wsdl:message name="soapCheckResponse">
    Thanks and Regard,
    Srikanth

  • What's a lightweight method to call a web service from an applet?

    So, writing web service clients in java is pretty easy these days using the JAX-RPC library. Problem is in an applet you want it to load fast. I need my applet to call a web service, but don't want to include all the 'baggage' that comes along with JAX-RPC. It looks like you need XML libraries for JAX-RPC stuff to run, and those are huge jar files (many megabytes). I want a lightweight way to call web services. They are my own web services, so I don't need a general solution. There's got to be a way to just form a soap message and use http to send it. It seems like that has been done already.
    On a related note. I will be passing byte arrays as parameters, so if I do try and form my own SOAP XML message, how are byte typically encoded into these messages?
    Thanks a bunch for any suggestions.
    Mike

    The scripting prompt is due to locally installed WebHelp. If you put it on a server, it should work fine. (Or try to enable Mark of the Web for your output.)
    The problem with CSH not working is probably because the CSH is not enabled in the output. In the single source layout settings, make sure that all your map files are selected:
    The easiest way I see it to create a simple API yourself. (We did it for Delphi and C# and it took about ten minutes.) You can just create a URL and feed it to the default browser. If you want to be able to load new help calls in the same tab, you will have to hook into the browser somehow.
    The URL's are really easy to create. See http://www.wvanweelden.eu/article-category/context-sensitivity for a complete overview of all your options in HTML and WebHelp. If you want to call a CHM context sensitive look at the following article: http://msdn.microsoft.com/en-us/library/2bk8zwb3(v=vs.90).aspx
    Greet,
    Willam

  • Calling a web service in external system from SRM

    Hi folks,
    A web service is created in the external system and I need to access this web service from a BADI. Can you tell me how can I call this web service (the external system is giving me a URL) and how I'll get a return. Please let me know in detail.
    Thanks,
    Prem

    Prem,
    Hi. You can call the service via HTTP protocol. Pass them values (SET_DATA), and receive a response (GET_DATA), via xml/html.
    In your code you would need to create the xml data to pass them, and evaluate the returned xml.
    Process...
    Data setup
    1) Create the XML to send them
    Working with the external service
    2) Open the HTTP connection
    2a) cl_http_client=>create_by_url (IF_HTTP_CLIENT)
    2b) lr_client->authenticate
    3) Call the to send them the XML
    3a) lr_client->request->set_data
    3b) lr_client->send
    4) Call the lr_client->receive to return the response
    5) Close the connection lr_client->close
    Data evaluate
    6) Evaluation the returned XML and process.
    Hope this helps
    Cheers
    Rob
    Code example below.. (There are loads of SAP examples depending on which release you are on).
    Process the call to the HTTP client - logic copied from RSHTML01     *
    Open IF_HTTP_CLIENT
      call method cl_http_client=>create_by_url
        exporting
          url                = l_url
        importing
          client             = lr_client
        exceptions
          argument_not_found = 1
          plugin_not_active  = 2
          internal_error     = 3
          others             = 4.
      if sy-subrc <> 0.
        message id sy-msgid type sy-msgty number sy-msgno
                   with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4
          raising oops.
      endif.
    Authenticate the user
      if not g_int_type-usr is initial.
        move: g_int_type-usr      to l_user,
              g_int_type-password to l_password.
        call method lr_client->authenticate
          exporting
            username = l_user
            password = l_password.
      endif.
    Allow for Cookies
      lr_client->propertytype_accept_cookie = lr_client->co_enabled.
    Set the server protocol
      select single gsval into l_server_protocol
        from z77s0
          where grpid = c_grpid
          and   semid = c_server_protocol.
      if sy-subrc eq 0
      and not l_server_protocol is initial.
        move l_server_protocol to l_st_server_protocol.
        call method lr_client->request->set_header_field
          exporting
            name  = '~server_protocol'
            value = l_st_server_protocol.
      endif.
      Send out the XML
      Set body to XML data
        lr_client->request->set_data( g_xxml ).
        save_xml( i_role = cl_xml_document=>c_role_oreq ).
        l_request_length = xstrlen( g_xxml ).
      If Data is sent through then we need certain flags set
        lr_client->request->set_header_field(
                                   name = 'Content-Type'
                                   value = zcl_tem_bsp=>c_xml_content ).
        call method lr_client->request->set_header_field
          exporting
            name  = '~request_method'
            value = 'POST'.
      Set length of string to the header fields
        if not l_request_length is initial.
          move l_request_length to l_st_request_length.
          lr_client->request->set_header_field(
                                    name = 'content-length'
                                    value = l_st_request_length ).
        endif.
      Send the request
        call method lr_client->send
          exceptions
            http_communication_failure = 1
            http_invalid_state         = 2
            http_processing_failed     = 3
            http_invalid_timeout       = 4
            others                     = 5.
        check_for_error 'Send'.
      Receive the response
        call method lr_client->receive
          exceptions
            http_communication_failure = 1
            http_invalid_state         = 2
            http_processing_failed     = 3
            others                     = 4.
        check_for_error 'Receive'.
      Determined returned XML or HTML
        g_xxml = lr_client->response->get_data(  ).
      Determine the header fields for failure validation
        if lr_client->response->get_header_field( '~status_code' )
              between 200 and 299.
          save_xml( i_role = cl_xml_document=>c_role_ires ).
        else.
          l_status_code =
            lr_client->response->get_header_field( '~status_code' ).
          l_descript_1 =
            lr_client->response->get_header_field( 'error' ).
          l_descript_2 =
            lr_client->response->get_header_field( 'errortext' ).

  • Problem in calling a web service hosted on tomcat from BEA WebLogic portal

    Hi,
    I have a wsdl file for my web service which is hosted on apache tomcat 5.5(running on port : 8080). The contents of the wsdl file are-
    *<?xml version="1.0" encoding="UTF-8"?>*
    *<wsdl:definitions targetNamespace="http://soa.tutorials.serg.edu" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://soa.tutorials.serg.edu" xmlns:intf="http://soa.tutorials.serg.edu" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">*
    *<!--WSDL created by Apache Axis version: 1.4*
    Built on Apr 22, 2006 (06:55:48 PDT)-->
    *<wsdl:types>*
    *<schema elementFormDefault="qualified" targetNamespace="http://soa.tutorials.serg.edu" xmlns="http://www.w3.org/2001/XMLSchema">*
    *<element name="getNums">*
    *<complexType>*
    *<sequence>*
    *<element name="n" type="xsd:int"/>*
    *<element name="m" type="xsd:int"/>*
    *</sequence>*
    *</complexType>*
    *</element>*
    *<element name="getNumsResponse">*
    *<complexType>*
    *<sequence>*
    *<element maxOccurs="unbounded" name="getNumsReturn" type="xsd:int"/>*
    *</sequence>*
    *</complexType>*
    *</element>*
    *<element name="getNums2">*
    *<complexType>*
    *<sequence>*
    *<element name="n" type="xsd:int"/>*
    *<element name="m" type="xsd:int"/>*
    *</sequence>*
    *</complexType>*
    *</element>*
    *<element name="getNums2Response">*
    *<complexType>*
    *<sequence>*
    *<element maxOccurs="unbounded" name="getNums2Return" type="xsd:int"/>*
    *</sequence>*
    *</complexType>*
    *</element>*
    *</schema>*
    *</wsdl:types>*
    *<wsdl:message name="getNums2Request">*
    *<wsdl:part element="impl:getNums2" name="parameters"/>*
    *</wsdl:message>*
    *<wsdl:message name="getNumsRequest">*
    *<wsdl:part element="impl:getNums" name="parameters"/>*
    *</wsdl:message>*
    *<wsdl:message name="getNums2Response">*
    *<wsdl:part element="impl:getNums2Response" name="parameters"/>*
    *</wsdl:message>*
    *<wsdl:message name="getNumsResponse">*
    *<wsdl:part element="impl:getNumsResponse" name="parameters"/>*
    *</wsdl:message>*
    *<wsdl:portType name="Echo">*
    *<wsdl:operation name="getNums">*
    *<wsdl:input message="impl:getNumsRequest" name="getNumsRequest"/>*
    *<wsdl:output message="impl:getNumsResponse" name="getNumsResponse"/>*
    *</wsdl:operation>*
    *<wsdl:operation name="getNums2">*
    *<wsdl:input message="impl:getNums2Request" name="getNums2Request"/>*
    *<wsdl:output message="impl:getNums2Response" name="getNums2Response"/>*
    *</wsdl:operation>*
    *</wsdl:portType>*
    *<wsdl:binding name="EchoSoapBinding" type="impl:Echo">*
    *<wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>*
    *<wsdl:operation name="getNums">*
    *<wsdlsoap:operation soapAction=""/>*
    *<wsdl:input name="getNumsRequest">*
    *<wsdlsoap:body use="literal"/>*
    *</wsdl:input>*
    *<wsdl:output name="getNumsResponse">*
    *<wsdlsoap:body use="literal"/>*
    *</wsdl:output>*
    *</wsdl:operation>*
    *<wsdl:operation name="getNums2">*
    *<wsdlsoap:operation soapAction=""/>*
    *<wsdl:input name="getNums2Request">*
    *<wsdlsoap:body use="literal"/>*
    *</wsdl:input>*
    *<wsdl:output name="getNums2Response">*
    *<wsdlsoap:body use="literal"/>*
    *</wsdl:output>*
    *</wsdl:operation>*
    *</wsdl:binding>*
    *<wsdl:service name="EchoService">*
    *<wsdl:port binding="impl:EchoSoapBinding" name="Echo">*
    *<wsdlsoap:address location="http://localhost:8080/SOATest/services/Echo"/>*
    *</wsdl:port>*
    *</wsdl:service>*
    *</wsdl:definitions>*
    I created a client from the above wsdl file using ClientGen wizard in WebLogic. This client contains the follwoing classes-
    Echo.java
    EchoService.java
    EchoService_Impl.java
    Echo_Stub.java
    I created a JSP portlet and the jsp content of it is-
    String url = "http://localhost:8080/SOATest/services/Echo";
    Echo echo = new EchoService_Impl(url).getEcho();
    getNumsResponse = echo.getNums(getNums);
    I tried to call that web service from BEA weblogic portal through a JSP potlet. I got an error saying -
    *<An exception [javax.xml.rpc.ServiceException: Failed to parse WSDL http://localhost:8080/SOATest/services/Echo weblogic.wsee.wsdl.WsdlException: Failed to read wsdl file from url due to -- java.io.IOException: Error at Line:2, token:[OPENTAGBEGIN]All tags must be contained within a single element] was thrown while rendering the content at [TestEcho.jsp].*
    *javax.servlet.ServletException: javax.xml.rpc.ServiceException: Failed to parse WSDL http://localhost:8080/SOATest/services/Echo weblogic.wsee.wsdl.WsdlException: Failed to read wsdl file from url due to -- java.io.IOException: Error at Line:2, token:[OPENTAGBEGIN]All tags must be contained within a single element*
    *     at weblogic.servlet.jsp.PageContextImpl.handlePageException(PageContextImpl.java:420)*
    *     at jsp_servlet.__testecho._jspService(__testecho.java:112)*
    *     at weblogic.servlet.jsp.JspBase.service(JspBase.java:34)*
    *     at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)*
    *     at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)*
    *     Truncated. see log file for complete stacktrace*
    *javax.xml.rpc.ServiceException: Failed to parse WSDL http://localhost:8080/SOATest/services/Echo weblogic.wsee.wsdl.WsdlException: Failed to read wsdl file from url due to -- java.io.IOException: Error at Line:2, token:[OPENTAGBEGIN]All tags must be contained within a single element*
    *     at weblogic.wsee.jaxrpc.ServiceImpl.throwServiceException(ServiceImpl.java:174)*
    *     at weblogic.wsee.jaxrpc.ServiceImpl.loadWsdlDefinition(ServiceImpl.java:485)*
    *     at weblogic.wsee.jaxrpc.ServiceImpl.<init>(ServiceImpl.java:119)*
    *     at edu.serg.tutorials.soa.EchoService_Impl.<init>(Unknown Source)*
    *     at edu.serg.tutorials.soa.EchoService_Impl.<init>(Unknown Source)*
    *     Truncated. see log file for complete stacktrace*
    *weblogic.wsee.wsdl.WsdlException: Failed to read wsdl file from url due to -- java.io.IOException: Error at Line:2, token:[OPENTAGBEGIN]All tags must be contained within a single element*
    *     at weblogic.wsee.wsdl.WsdlReader.getDocument(WsdlReader.java:313)*
    *     at weblogic.wsee.wsdl.WsdlDefinitions.parse(WsdlDefinitions.java:405)*
    *     at weblogic.wsee.wsdl.WsdlDefinitions.parse(WsdlDefinitions.java:391)*
    *     at weblogic.wsee.wsdl.WsdlFactory.parse(WsdlFactory.java:79)*
    *     at weblogic.wsee.wsdl.WsdlFactory.parse(WsdlFactory.java:66)*
    *     Truncated. see log file for complete stacktrace*
    *java.io.IOException: Error at Line:2, token:[OPENTAGBEGIN]All tags must be contained within a single element*
    *     at weblogic.xml.domimpl.Loader.load(Loader.java:38)*
    *     at weblogic.wsee.util.dom.DOMParser.getWebLogicDocumentImpl(DOMParser.java:122)*
    *     at weblogic.wsee.util.dom.DOMParser.getDocument(DOMParser.java:65)*
    *     at weblogic.wsee.wsdl.WsdlReader.getDocument(WsdlReader.java:311)*
    *     at weblogic.wsee.wsdl.WsdlDefinitions.parse(WsdlDefinitions.java:405)*
    *     Truncated. see log file for complete stacktrace*
    *javax.xml.stream.XMLStreamException: Error at Line:2, token:[OPENTAGBEGIN]All tags must be contained within a single element*
    *     at weblogic.xml.stax.XMLStreamReaderBase.advance(XMLStreamReaderBase.java:206)*
    *     at weblogic.xml.stax.XMLStreamReaderBase.next(XMLStreamReaderBase.java:237)*
    *     at weblogic.xml.domimpl.Loader.load(Loader.java:112)*
    *     at weblogic.xml.domimpl.Loader.load(Loader.java:73)*
    *     at weblogic.xml.domimpl.Loader.load(Loader.java:35)*
    *     Truncated. see log file for complete stacktrace*
    *Error at Line:2, token:[OPENTAGBEGIN]All tags must be contained within a single element*
    *     at weblogic.xml.babel.baseparser.BaseParser.parseProlog(BaseParser.java:417)*
    *     at weblogic.xml.babel.baseparser.BaseParser.parseSome(BaseParser.java:328)*
    *     at weblogic.xml.stax.XMLStreamReaderBase.advance(XMLStreamReaderBase.java:195)*
    *     at weblogic.xml.stax.XMLStreamReaderBase.next(XMLStreamReaderBase.java:237)*
    *     at weblogic.xml.domimpl.Loader.load(Loader.java:112)*
    *     Truncated. see log file for complete stacktrace*
    My web service is using soap binding. I have tested it with eclipse and other tools also. It is working well and good. But when I tried to call a web service which is created and hosted on WebLogic server(running on port : 7001), I got the correct output.
    Can anyone help me out in calling a web service hosted on different server from WebLogic server.
    Thanks in advance,
    Tiijnar
    Edited by: user8715057 on Aug 13, 2009 1:11 AM

    Hi
    1. The way you are invoking the WebService deployed on Tomcat server is looks suspicious. It may be valid by adding extra ?wsdl etc into the url, but still I have not seen this way to invoke the webservice.
    2. So you used Weblogic ant task to generate client JARs by giving this WSDL. So looks like it generated the 4 classes (.java) and in addition any other classes for Request/Response xml objects.
    3. Look at the source code of EchoService.java. It should have one default empty constructor. Internally it uses the default wsdl defined in this class. You will see another constructor that takes WSDL URL as one of the parameters (QName) etc. Echo.java is the class corresponding to the Port. In the same EchoService you should see an instance method like getEcho() something like that. This Echo.java class will have methods for all the Operations defined on this Port. So the standard code snippet we use most of the times will be like this:
    EchoService myEchoService = new EchoService(); // Default it uses WSDL deployed on Tomcat at localhost:8080
    Echo myEchoPort = myEchoService.getEchoPort(); // Something along these lines.
    myEchoPort.xxxYYY(); // NOW this is the operation name that takes the input parameters and returns outputs defined as per the WSDL defintions. If the Input and Outputs are complex xml types, it will have corresponing .JAVA files with setters and getters.
    Now if this WebService is deployed on same Tomcat but on different machine or different port, you just give the full WSDL URL with that host and port in the constructor for new EchoService(...). You may need to instantiate QName object. But look at the methods generated in EchoService.java class.
    The way you are using with Impl and Stubs class may also work. I am not much famiiar with this APIs apporach. Still look at the methods generated in these classes.
    Also if you latest Sun JDK 1.6, it also has one command like wsimport. Infact if you install WLS 10.3 with Sun JDK, it should have C:\beawlp103\jdk160_05\bin\wsimport command. This will also generate client jar given a WSDL URL.
    Thanks
    Ravi Jegga

  • Calling a Web Service from Mobile - UI options

    Hi Team,
    I have a scenario where the backend SAP functionality is exposed as a web service and we need to call it online from a mobile handheld device (Symbol with Pocket PC client 2003, IE browser 4.0). Is it possible to call this web service from the handheld? Do we have to write the web service call on the J2EE stack using NetWeaver developer studio?
    Also, what UI technology is recommended for showing the data from the web service call. The idea is to get some user input on the handheld, and then post a transaction via the web service on SAP. I discussed with some of my colleagues and they recommend to use JSP/Servlets for this. Does anybody has a better idea, (the JSP/Servlets does not seem correct). Should we use native XSLT or something else.
    Please note that the Mobile Web Dynpro has limitations on the UI side and the "onEnter", "setFocus" does not work, specifically on the netweaver 2004s release. The backend ERP system we have is 2004s and I'm trying to make a web service call from a NW 2004 client.
    Any ideas or pointers will be appreciated and points awarded. Thanks for your time.

    Hi Sanjay!
    Yes, To call a WebService you will have to write your Own Application using NWDS.I donot have any specific recommendation for the UI Technology to be used.
    Usage of "OnEnter" and "SetFocus" with NW2004s has certain limitations below.
    "OnEnter" is not a supported feature as of now especially for WD applications on Handheld Devices.
    "SetFocus" will work on IE6.0 Standard Desktop Browser with WAS7.0 SP06 and i believe it will work in hand held devices if your using WAS7.0(NW2004s)SP8 and you are using the latest Symbol Device that has Windows Mobile 5.0 OR Windows CE.NET 5.0.I understand that there could be some limitations with the OS and the IE you are currently running in the device.
    Let me know your views.
    Thank You
    Gisk

  • Calling a Web Service from OPM ODS

    Greetings,
    Is it possible to call a web service directly from OPM (version 10.4) using Determinations Server or do we need BPM or BPEL to be involved. We are trying to transition to Weblogic 11g Fusion SOA environment using OPA for rules.
    Thanks

    Hi Davin,
    I have managed to deployed the determinations-server.war with the rulebase to WLS. I am also able to create a web service proxy to send request to ODS and get the response returned. However, my doubt now is I do not know how to consume it in BPM. In my BPM process flow, I tried creating a web service call to ODS but it did not work, as in the flow runs and completed with success but there were no response returned from ODS due its complex type which couldn't be mapped directly to the data object type created in BPM.
    I am wondering if there is any samples or tutorials available which will guide me in understanding this topic better. Any help is much appreciated.
    Many thanks in advance!

  • Call a Web Service from within an e-Sourcing script

    Hi Guys
    I would like to know wether anyone has successfully been able to call a Web Service from within an
    e-Sourcing script? If you have, can you please share your experience and code?
    Thank You

    Hi Faaiez -
    As with any use of Web Services, however, you should carefully consider the security issues that may come up. How, for example, will the Web Service server validate that the Web Service client (E-Sourcing) is properly authenticated? Will password information be included in the web service call? You will find that it is very easy to make a web service call, but I would encourage you to carefully consider security before implementing a productive solution.
    Web service calls can be made using raw Java web service APIs from the open source Axis library which is included with E-Sourcing; this approach is slightly more difficult to code, but very dynamic. Web service calls can also be made using proxies. In one solution that I worked on, we generated java proxies for the web service, compiled those proxies into a Jar file, and included that jar file as a custom jar in E-Sourcing. Let me provide a few more details on each of these approaches.
    Using raw java web service APIs that are part of the Service and Call classes, I prototyped a web service call to Googles sample spell checker web service. Here is the code:
    import org.apache.axis.client.Call;
    import org.apache.axis.client.Service;
    import org.apache.axis.encoding.XMLType;
    import javax.xml.rpc.ParameterMode;
    import javax.xml.namespace.QName;
    String endpoint = "http://api.google.com/search/beta2";
    Service  service = new Service();       
    Call call = (Call) service.createCall();       
    call.setTargetEndpointAddress( new java.net.URL(endpoint) );       
    call.setOperationName( "doSpellingSuggestion" );       
    call.setOperationName(new QName("urn:GoogleSearch", "doSpellingSuggestion"));       
    call.addParameter("key", XMLType.XSD_STRING, ParameterMode.IN);       
    call.addParameter("phrase", XMLType.XSD_STRING, ParameterMode.IN);       
    call.setReturnType( XMLType.XSD_STRING );       
    String ret = (String) call.invoke( new Object[] { "googlekey", doc.getDocumentDescription()} );       
    doc.setDocumentDescription(ret);
    This block of code does a very simple thing...it calls the Google "doSpellingSuggestions" web service with two parameters: a key provided by Google, and a string for which the spelling suggestions should be generated. I used the current document description as my sample string for the web service and I put the results back into the document description - remember, this is just showing how you can call the web service, not doing anything really intelligent or useful from a business perspective
    There is nothing special to E-Sourcing about the above code...this is really just using the Axis java classes to call a web service.
    The second approach that can be used is to generate Java proxies for the web service calls. The open source Axis library includes a tool called "wsdl2java". Using the WSDL for the web service, you can generate Java proxies. Java classes will be generated by the tool; these Java classes will then need to be compiled and included in E-Sourcing as a custom jar. Once they are part of the E-Sourcing deployment, they can be called like any Java API. If you were to examine the generated code, you would notice that it looks a lot like the raw web service code shown above...the generated classes really just provide a simpler interface to the same functionality.
    You can see this information and other E-Sourcing information at my blog at: http://www.sunshinesys.com/
    Rob

  • How call a web service WCF pl/sql

    Hi,
    I developed a web services using Visual Studio .NET Framework 4.0, and I need call this web service from Store procedure in Oracle 10g, but I don't have Idea how. I have seen some examples in web but that examples not work when I've used.
    My web service is developed using WCF and It has the address:
    http://10.200.53.250/PeajeElect/Bcac.PeajeElect.Agente_Servicio_ETC.svc
    The config specification is:
    <endpoint address="" binding="basicHttpBinding" contract="Bcac.PeajeElect.IAgente_Servicio_ETC" bindingConfiguration="TheBasicBindingConfig">
    <identity>
    <dns value="localhost" />
    </identity>
    </endpoint>
    Somebody can helppe me, please
    And the wsdl specification is:
    <?xml version="1.0" encoding="utf-8" ?>
    - <wsdl:definitions name="Agente_Servicio_ETC" targetNamespace="http://tempuri.org/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:tns="http://tempuri.org/" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsap="http://schemas.xmlsoap.org/ws/2004/08/addressing/policy" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:msc="http://schemas.microsoft.com/ws/2005/12/wsdl/contract" xmlns:wsa10="http://www.w3.org/2005/08/addressing" xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata">
    - <wsdl:types>
    - <xsd:schema targetNamespace="http://tempuri.org/Imports">
    <xsd:import schemaLocation="http://win-r6ddgayo3y4/PeajeElect/Bcac.PeajeElect.Agente_Servicio_ETC.svc?xsd=xsd0" namespace="http://tempuri.org/" />
    <xsd:import schemaLocation="http://win-r6ddgayo3y4/PeajeElect/Bcac.PeajeElect.Agente_Servicio_ETC.svc?xsd=xsd1" namespace="http://schemas.microsoft.com/2003/10/Serialization/" />
    </xsd:schema>
    </wsdl:types>
    - <wsdl:message name="IAgente_Servicio_ETC_ConsultaDeTransacciones_InputMessage">
    <wsdl:part name="parameters" element="tns:ConsultaDeTransacciones" />
    </wsdl:message>
    - <wsdl:message name="IAgente_Servicio_ETC_ConsultaDeTransacciones_OutputMessage">
    <wsdl:part name="parameters" element="tns:ConsultaDeTransaccionesResponse" />
    </wsdl:message>
    - <wsdl:message name="IAgente_Servicio_ETC_ListaDeTags_InputMessage">
    <wsdl:part name="parameters" element="tns:ListaDeTags" />
    </wsdl:message>
    - <wsdl:message name="IAgente_Servicio_ETC_ListaDeTags_OutputMessage">
    <wsdl:part name="parameters" element="tns:ListaDeTagsResponse" />
    </wsdl:message>
    - <wsdl:message name="IAgente_Servicio_ETC_ResultadoListasDeTags_InputMessage">
    <wsdl:part name="parameters" element="tns:ResultadoListasDeTags" />
    </wsdl:message>
    - <wsdl:message name="IAgente_Servicio_ETC_ResultadoListasDeTags_OutputMessage">
    <wsdl:part name="parameters" element="tns:ResultadoListasDeTagsResponse" />
    </wsdl:message>
    - <wsdl:message name="IAgente_Servicio_ETC_TagsPorNumeroDocumento_InputMessage">
    <wsdl:part name="parameters" element="tns:TagsPorNumeroDocumento" />
    </wsdl:message>
    - <wsdl:message name="IAgente_Servicio_ETC_TagsPorNumeroDocumento_OutputMessage">
    <wsdl:part name="parameters" element="tns:TagsPorNumeroDocumentoResponse" />
    </wsdl:message>
    - <wsdl:message name="IAgente_Servicio_ETC_Echo_InputMessage">
    <wsdl:part name="parameters" element="tns:Echo" />
    </wsdl:message>
    - <wsdl:message name="IAgente_Servicio_ETC_Echo_OutputMessage">
    <wsdl:part name="parameters" element="tns:EchoResponse" />
    </wsdl:message>
    - <wsdl:message name="IAgente_Servicio_ETC_ws_add_InputMessage">
    <wsdl:part name="parameters" element="tns:ws_add" />
    </wsdl:message>
    - <wsdl:message name="IAgente_Servicio_ETC_ws_add_OutputMessage">
    <wsdl:part name="parameters" element="tns:ws_addResponse" />
    </wsdl:message>
    - <wsdl:portType name="IAgente_Servicio_ETC">
    - <wsdl:operation name="ConsultaDeTransacciones">
    <wsdl:input wsaw:Action="http://tempuri.org/IAgente_Servicio_ETC/ConsultaDeTransacciones" message="tns:IAgente_Servicio_ETC_ConsultaDeTransacciones_InputMessage" />
    <wsdl:output wsaw:Action="http://tempuri.org/IAgente_Servicio_ETC/ConsultaDeTransaccionesResponse" message="tns:IAgente_Servicio_ETC_ConsultaDeTransacciones_OutputMessage" />
    </wsdl:operation>
    - <wsdl:operation name="ListaDeTags">
    <wsdl:input wsaw:Action="http://tempuri.org/IAgente_Servicio_ETC/ListaDeTags" message="tns:IAgente_Servicio_ETC_ListaDeTags_InputMessage" />
    <wsdl:output wsaw:Action="http://tempuri.org/IAgente_Servicio_ETC/ListaDeTagsResponse" message="tns:IAgente_Servicio_ETC_ListaDeTags_OutputMessage" />
    </wsdl:operation>
    - <wsdl:operation name="ResultadoListasDeTags">
    <wsdl:input wsaw:Action="http://tempuri.org/IAgente_Servicio_ETC/ResultadoListasDeTags" message="tns:IAgente_Servicio_ETC_ResultadoListasDeTags_InputMessage" />
    <wsdl:output wsaw:Action="http://tempuri.org/IAgente_Servicio_ETC/ResultadoListasDeTagsResponse" message="tns:IAgente_Servicio_ETC_ResultadoListasDeTags_OutputMessage" />
    </wsdl:operation>
    - <wsdl:operation name="TagsPorNumeroDocumento">
    <wsdl:input wsaw:Action="http://tempuri.org/IAgente_Servicio_ETC/TagsPorNumeroDocumento" message="tns:IAgente_Servicio_ETC_TagsPorNumeroDocumento_InputMessage" />
    <wsdl:output wsaw:Action="http://tempuri.org/IAgente_Servicio_ETC/TagsPorNumeroDocumentoResponse" message="tns:IAgente_Servicio_ETC_TagsPorNumeroDocumento_OutputMessage" />
    </wsdl:operation>
    - <wsdl:operation name="Echo">
    <wsdl:input wsaw:Action="http://tempuri.org/IAgente_Servicio_ETC/Echo" message="tns:IAgente_Servicio_ETC_Echo_InputMessage" />
    <wsdl:output wsaw:Action="http://tempuri.org/IAgente_Servicio_ETC/EchoResponse" message="tns:IAgente_Servicio_ETC_Echo_OutputMessage" />
    </wsdl:operation>
    - <wsdl:operation name="ws_add">
    <wsdl:input wsaw:Action="http://tempuri.org/IAgente_Servicio_ETC/ws_add" message="tns:IAgente_Servicio_ETC_ws_add_InputMessage" />
    <wsdl:output wsaw:Action="http://tempuri.org/IAgente_Servicio_ETC/ws_addResponse" message="tns:IAgente_Servicio_ETC_ws_add_OutputMessage" />
    </wsdl:operation>
    </wsdl:portType>
    - <wsdl:binding name="BasicHttpBinding_IAgente_Servicio_ETC" type="tns:IAgente_Servicio_ETC">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
    - <wsdl:operation name="ConsultaDeTransacciones">
    <soap:operation soapAction="http://tempuri.org/IAgente_Servicio_ETC/ConsultaDeTransacciones" style="document" />
    - <wsdl:input>
    <soap:body use="literal" />
    </wsdl:input>
    - <wsdl:output>
    <soap:body use="literal" />
    </wsdl:output>
    </wsdl:operation>
    - <wsdl:operation name="ListaDeTags">
    <soap:operation soapAction="http://tempuri.org/IAgente_Servicio_ETC/ListaDeTags" style="document" />
    - <wsdl:input>
    <soap:body use="literal" />
    </wsdl:input>
    - <wsdl:output>
    <soap:body use="literal" />
    </wsdl:output>
    </wsdl:operation>
    - <wsdl:operation name="ResultadoListasDeTags">
    <soap:operation soapAction="http://tempuri.org/IAgente_Servicio_ETC/ResultadoListasDeTags" style="document" />
    - <wsdl:input>
    <soap:body use="literal" />
    </wsdl:input>
    - <wsdl:output>
    <soap:body use="literal" />
    </wsdl:output>
    </wsdl:operation>
    - <wsdl:operation name="TagsPorNumeroDocumento">
    <soap:operation soapAction="http://tempuri.org/IAgente_Servicio_ETC/TagsPorNumeroDocumento" style="document" />
    - <wsdl:input>
    <soap:body use="literal" />
    </wsdl:input>
    - <wsdl:output>
    <soap:body use="literal" />
    </wsdl:output>
    </wsdl:operation>
    - <wsdl:operation name="Echo">
    <soap:operation soapAction="http://tempuri.org/IAgente_Servicio_ETC/Echo" style="document" />
    - <wsdl:input>
    <soap:body use="literal" />
    </wsdl:input>
    - <wsdl:output>
    <soap:body use="literal" />
    </wsdl:output>
    </wsdl:operation>
    - <wsdl:operation name="ws_add">
    <soap:operation soapAction="http://tempuri.org/IAgente_Servicio_ETC/ws_add" style="document" />
    - <wsdl:input>
    <soap:body use="literal" />
    </wsdl:input>
    - <wsdl:output>
    <soap:body use="literal" />
    </wsdl:output>
    </wsdl:operation>
    </wsdl:binding>
    - <wsdl:service name="Agente_Servicio_ETC">
    - <wsdl:port name="BasicHttpBinding_IAgente_Servicio_ETC" binding="tns:BasicHttpBinding_IAgente_Servicio_ETC">
    <soap:address location="http://win-r6ddgayo3y4/PeajeElect/Bcac.PeajeElect.Agente_Servicio_ETC.svc" />
    </wsdl:port>
    </wsdl:service>
    </wsdl:definitions>

    user5514643 wrote:
    Can you give some tip about how connect the web service ?The HTTP protocol obviously need to be used. Oracle provides a couple of HTTP client (web browser like) interfaces. Obviously there is no rendering engine/DOM in PL/SQL as this does not make much sense in a server side language. As a web service typically returns XML, that is not a problem as XML is something that servers need to deal with - and Oracle fully supports XML via SQL, PL/SQL and database structures.
    A basic example of how to use the UTL_HTTP interface for interacting with a web service is in {message:id=4205205}. If you scroll up in that thread, you will also see more complex approaches of loading the web service WSDL and using that to make calls to the service - something that involves too many moving parts and Java unnecessarily.

  • How to develop and call Asynchronous web service

    Hi All,
    I need to have a java web service that will be called asynchronously.
    That should execute, once triggered and caller shouldnt need to wait till its completion.
    How to develop and call asynchronoue web service ?
    Thanks
    Saikrishna

    Let your web service start its own background thread (*) somehow and move your business logic from web service to this thread. Then you can return from your web service. The client won't be blocked and your application will run on your server after service callout will be finished.
    I hope that's what you need. Anyway, there is only "asynchronous communication" and nothing like "asynchronous web service". At least from HTTP point of view, every call is synchronous - you have request and response.
    (*) You shouldn't start your own thread since you are in JEE world. Look at documentation for your container. E.g. for weblogic there are workers you can use this way. Or you can choose the other way. I hope that for any container you can just enqueue your web service request to any JMS queue and move your business logic to an appropriate MDB. Then, your web service will be just a simple JMS producer and your web service client won't be forced to wait for business logic to finish.
    Last but not least, next time choose a better forum. :-)

  • Problems calling external Web Service from a Java Stored Procedure

    I'm using a sample code that I found here about calling external web services from a Java Store Procedure ( Credit Agency Web Service http://www.oracle.com/technology/sample_code/tech/java/jsp/samples/wsclient/Readme.html ) but when I run it ,send this error. I dont know what can I do or what is missing. Please help me. Thanks.
    Error: Premature EOF encountered [java.io.EOFException] [SOAPException: faultCode=SOAP-ENV:IOException; msg=Premature EOF encountered; targetException=java.io.EOFException: Premature EOF encountered] at org.apache.soap.SOAPException.(SOAPException.java:77) at oracle.soap.transport.http.OracleSOAPHTTPConnection.send(OracleSOAPHTTPConnection.java:765) at org.apache.soap.rpc.Call.invoke(Call.java:261) at oracle.otnsamples.wsclient.CreditAgencyServiceStub.authorizeCustomer(CreditAgencyServiceStub.java:84) at Products.jspService(Products.jsp:120) at oracle.jsp.runtime.HttpJsp.service(HttpJsp.java:139) at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:349) at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:509) at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:413) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:795) at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:330) at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:794) at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:270) at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:112) at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:192) at java.lang.Thread.run(Thread.java:534)

    I'm also facing problem in running the example on the page http://www.oracle.com/technology/sample_code/tech/java/jsp/samples/wsclient/Readme.html
    I've Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 and Oracle Application Server 10g (10.1.3). When I executed the following command,
    loadjava -thin -user sys/password@localhost:1521:oradb -resolve -synonym -verbose -grant public %OC4J_HOME%/webservices/lib/soap.jar %OC4J_HOME%/lib/dms.jar %OC4J_HOME%/jlib/javax-ssl-1_1.jar %ORACLE_HOME%/lib/servlet.jar %OC4J_HOME%/j2ee/home/lib/mail.jar
    ... mentioned in step 3 under the "Configuring the Application" section on the above link, the process terminates with the following error
    The following operations failed
    class oracle/net/www/protocol/https/Handler: resolution
    class oracle/net/www/protocol/https/HttpsURLConnection: resolution
    class oracle/soap/client/ProviderManagerClient: resolution
    class oracle/soap/client/ServiceManagerClient: resolution
    class oracle/soap/providers/JavaProvider: resolution
    class oracle/soap/providers/ejbprov/EntityEJBProvider: resolution
    class oracle/soap/providers/ejbprov/StatefulEJBProvider: resolution
    class oracle/soap/providers/ejbprov/StatelessEJBProvider: resolution
    class oracle/soap/providers/sp/SpProvider: resolution
    class oracle/soap/server/http/SOAPServlet: resolution
    class oracle/soap/transport/http/OracleSOAPHTTPConnection$1: resolution
    class oracle/soap/transport/http/OracleSOAPHTTPConnection: resolution
    class org/apache/soap/messaging/Message: resolution
    class org/apache/soap/rpc/Call: resolution
    class org/apache/soap/rpc/RPCMessage: resolution
    class org/apache/soap/rpc/Response: resolution
    class javax/net/DefaultServerSocketFactory: creation (createFailed)
    class javax/net/DefaultSocketFactory: creation (createFailed)
    class javax/net/ServerSocketFactory: creation (createFailed)
    class javax/net/SocketFactory: creation (createFailed)
    class javax/net/ssl/DefaultSSLServerSocketFactory: creation (createFailed)
    class javax/net/ssl/DefaultSSLSocketFactory: creation (createFailed)
    class javax/net/ssl/HandshakeCompletedEvent: creation (createFailed)
    class javax/net/ssl/HandshakeCompletedListener: creation (createFailed)
    class javax/net/ssl/SSLException: creation (createFailed)
    class javax/net/ssl/SSLHandshakeException: creation (createFailed)
    class javax/net/ssl/SSLKeyException: creation (createFailed)
    class javax/net/ssl/SSLPeerUnverifiedException: creation (createFailed)
    class javax/net/ssl/SSLProtocolException: creation (createFailed)
    class javax/net/ssl/SSLServerSocket: creation (createFailed)
    class javax/net/ssl/SSLServerSocketFactory: creation (createFailed)
    class javax/net/ssl/SSLSession: creation (createFailed)
    class javax/net/ssl/SSLSessionBindingEvent: creation (createFailed)
    class javax/net/ssl/SSLSessionBindingListener: creation (createFailed)
    class javax/net/ssl/SSLSessionContext: creation (createFailed)
    class javax/net/ssl/SSLSocket: creation (createFailed)
    class javax/net/ssl/SSLSocketFactory: creation (createFailed)
    class javax/security/cert/Certificate: creation (createFailed)
    class javax/security/cert/CertificateEncodingException: creation (createFailed)
    class javax/security/cert/CertificateException: creation (createFailed)
    class javax/security/cert/CertificateExpiredException: creation (createFailed)
    class javax/security/cert/CertificateNotYetValidException: creation (createFailed)
    class javax/security/cert/CertificateParsingException: creation (createFailed)
    class javax/security/cert/X509Certificate: creation (createFailed)
    exiting : Failures occurred during processing
    I've checked the path to all the jar files.
    I tried to run the command again with system/password instead sys/password but then I got the following stacktrace:
    The following operations failed
    class oracle/net/www/protocol/https/Handler: resolution
    class oracle/net/www/protocol/https/HttpsURLConnection: resolution
    class oracle/soap/client/ProviderManagerClient: resolution
    class oracle/soap/client/ServiceManagerClient: resolution
    class oracle/soap/providers/JavaProvider: resolution
    class oracle/soap/providers/ejbprov/EntityEJBProvider: resolution
    class oracle/soap/providers/ejbprov/StatefulEJBProvider: resolution
    class oracle/soap/providers/ejbprov/StatelessEJBProvider: resolution
    class oracle/soap/providers/sp/SpProvider: resolution
    class oracle/soap/server/http/SOAPServlet: resolution
    class oracle/soap/transport/http/OracleSOAPHTTPConnection$1: resolution
    class oracle/soap/transport/http/OracleSOAPHTTPConnection: resolution
    class org/apache/soap/messaging/Message: resolution
    class org/apache/soap/rpc/Call: resolution
    class org/apache/soap/rpc/RPCMessage: resolution
    class org/apache/soap/rpc/Response: resolution
    exiting : Failures occurred during processing
    Thanks in advance for any useful help.
    -

Maybe you are looking for