Call web service (multipart MIME soap request) using pl/sql (utl_http)

I've the following header and http request.
POST http://deab/DexNETWebServices_4_0_0_4/LoginService.svc HTTP/1.1
MIME-Version: 1.0
Content-Type: multipart/related; type="application/xop+xml";start="<http://tempuri.org/0>";boundary="uuid:e4c19840-745d-45b2-90ca-12d71be4cfd9+id=1";start-info="application/soap+xml"
VsDebuggerCausalityData: uIDPo5F/qXRc4YJImqB6Ard30cQAAAAAAjIXinpIVUulXLJOsSG7yyv7Lf2yHgpHlIxvc6oeqaAACQAA
Host: deab
Content-Length: 1017
Expect: 100-continue
Accept-Encoding: gzip, deflate
Connection: Keep-Alive
--uuid:e4c19840-745d-45b2-90ca-12d71be4cfd9+id=1
Content-ID: <http://tempuri.org/0>
Content-Transfer-Encoding: 8bit
Content-Type: application/xop+xml;charset=utf-8;type="application/soap+xml"
<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing"><s:Header><a:Action s:mustUnderstand="1">http://tempuri.org/ILoginService/LoginByUserName</a:Action><a:MessageID>urn:uuid:cf410a05-23d4-4b92-a22c-329cbc19fbe7</a:MessageID><a:ReplyTo><a:Address>http://www.w3.org/2005/08/addressing/anonymous</a:Address></a:ReplyTo><a:To s:mustUnderstand="1">http://deab/DexNETWebServices_4_0_0_4/LoginService.svc</a:To></s:Header><s:Body><LoginByUserName xmlns="http://tempuri.org/"><systemId>19e0ddb4-5fa5-41ee-b624-aea762865a6c</systemId><strName>FirmwareUpdateLogQueryWorker</strName><productId>0af39a3e-6549-485b-872f-b73413203998</productId><password>abc</password></LoginByUserName></s:Body></s:Envelope>
--uuid:e4c19840-745d-45b2-90ca-12d71be4cfd9+id=1--
I'm using the following code to set the header from PL/SQL and call the request. But UTL_HTTP.get_response returns the error 400 Bad Request.
DECLARE
   l_request         CLOB;
   l_http_req        UTL_HTTP.req;
   l_http_resp       UTL_HTTP.resp;
   v_buffer          VARCHAR2 (32767);
   p_status_code     NUMBER (9);
   p_error_message   VARCHAR2 (32767);
   p_response        CLOB;
BEGIN
  l_request :=
            '--uuid:e4c19840-745d-45b2-90ca-12d71be4cfd9+id=1'
         || CHR (13)
         || 'Content-ID: <http://tempuri.org/0>'
         || CHR (13)
         || 'Content-Transfer-Encoding: 8bit'
         || CHR (13)
         || 'Content-Type: application/xop+xml;charset=utf-8;type="application/soap+xml"'
         || CHR (13)
         || CHR (13)
         || '<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing"><s:Header><a:Action s:mustUnderstand="1">http://tempuri.org/ILoginService/LoginByUserName</a:Action><a:MessageID>urn:uuid:cf410a05-23d4-4b92-a22c-329cbc19fbe7</a:MessageID><a:ReplyTo><a:Address>http://www.w3.org/2005/08/addressing/anonymous</a:Address></a:ReplyTo><a:To s:mustUnderstand="1">http://deab/DexNETWebServices_4_0_0_4/LoginService.svc</a:To></s:Header><s:Body><LoginByUserName xmlns="http://tempuri.org/"><systemId>'
         || '19e0ddb4-5fa5-41ee-b624-aea762865a6c'
         || '</systemId><strName>'
         || 'FirmwareUpdateLogQueryWorker'
         || '</strName><productId>'
         || '0af39a3e-6549-485b-872f-b73413203998'
         || '</productId><password>'
         || 'abc'
         || '</password></LoginByUserName></s:Body></s:Envelope>'
         || CHR (13)
         || '--uuid:e4c19840-745d-45b2-90ca-12d71be4cfd9+id=1--';
      DBMS_OUTPUT.put_line ('request ' || l_request);
      l_http_req := UTL_HTTP.begin_request ('http://deab/DexNETWebServices_4_0_0_4/LoginService.svc', 'POST', 'HTTP/1.1');
      UTL_HTTP.set_header (l_http_req, 'MIME-Version', '1.0');
      UTL_HTTP.set_header (
         l_http_req,
         'Content-Type',
         'multipart/related; type="application/xop+xml";start="<http://tempuri.org/0>";boundary="uuid:e4c19840-745d-45b2-90ca-12d71be4cfd9+id=1";start-info="application/soap+xml"');
      --      UTL_HTTP.set_header (l_http_req, 'Content-ID', '<http://tempuri.org/0>');
      --      UTL_HTTP.set_header (l_http_req, 'Content-Transfer-Encoding', '8bit');
      UTL_HTTP.set_header (
         l_http_req,
         'VsDebuggerCausalityData',
         'uIDPo5F/qXRc4YJImqB6Ard30cQAAAAAAjIXinpIVUulXLJOsSG7yyv7Lf2yHgpHlIxvc6oeqaAACQAA');
      UTL_HTTP.set_header (l_http_req, 'Content-Length', LENGTH (l_request));
      --                  UTL_HTTP.set_header (l_http_req,
      --                                       'SOAPAction',
      --                                       'http://tempuri.org/ILoginService/LoginByUserName');
      UTL_HTTP.write_text (l_http_req, l_request);
      DBMS_LOB.createtemporary (p_response, FALSE);
      l_http_resp := UTL_HTTP.get_response (l_http_req);
   BEGIN
      LOOP
         UTL_HTTP.read_text (l_http_resp, v_buffer, 32767);
         DBMS_OUTPUT.put_line (v_buffer);
         DBMS_LOB.writeappend (p_response, LENGTH (v_buffer), v_buffer);
      END LOOP;
   EXCEPTION
      WHEN UTL_HTTP.end_of_body
      THEN
         NULL;
   END;
   UTL_HTTP.end_response (l_http_resp);
   p_status_code := l_http_resp.status_code;
   p_error_message := l_http_resp.reason_phrase;
   p_response := REPLACE (p_response, '&lt;', '<');
   p_response := REPLACE (p_response, '&gt;', '>');
   DBMS_OUTPUT.put_line (
      'Status: ' || p_status_code || '-' || p_error_message || ': ' || p_response);
END;
Thank you for your help on this.

HI Michiel
I am also trying to achieve something similar to that. I am trying to call a web service that sends an xml attachment over MTOM? Kindly, let me know if this was achievable from your end? I mean how did the issue got resolved.
thanks
vijay

Similar Messages

  • Web Service posting via SOAP.request - Security settings prevent access...

    I'm trying to call a web service via the SOAP.request object in javascript embedded into my Interactive Form.  I've successfully done this with SAP NetWeaver 7.0 trial version however now I'm having this issue on a production setup.  The PDF generates fine and I can fill out the form and everything.  I checked the properties of both PDF documents (one that works from the trial and one that doesn't from the prod box) and they are the same, expect the one that works is PDF Version 1.6, and the one that doesn't is PDF Version 1.7.
    Here's the client-side error:
    Acrobat EScript Built-in Functions Version 8.0
    Acrobat Annotations / Collaboration Built-in Functions Version 8.0
    Acrobat Annotations / Collaboration Built-in Wizard Functions Version 8.0
    Acrobat Multimedia Version 8.0
    Acrobat SOAP 8.0
    NotAllowedError: Security settings prevent access to this property or method.
    SOAP.request:31:XFA:data[0]:mainform[0]:btnRelease[0]:click
    Here's the snippet of JavaScript code:
    var response = SOAP.request();
    Here are the security properties of the malfunctioning PDF:
    Security Method: No Security
    Can be Opened By: All versions of Acrobat
    Printing: Allowed
    Document Assembly: Not Allowed
    Content Copying: Allowed
    Content Copying for Accessibility: Allowed
    Page Extraction: Not Allowed
    Commenting: Allowed
    Filling of form fields: Allowed
    Signing: Allowed
    Creation of Template Pages: Allowed
    How do I determine what the culprit is?

    Michael,
    PDF Version 1.6 means Adobe Reader 7.0.x family and PDF version 1.7 means Adobe Reader 8.0.x or 9.0.x if I am not wrong.
    Also if you check LiveCycle Designer Help (Using LiveCycle Designer ES > Working with Data Sources > About data sources > Working with data connections) it clearly says that with LiveCycle Designer 8.0 secured web services are not supported and there are additional security settings for Reader 8.0 onwards, that may be causing the issue.
    Chintan

  • Error Calling Web Service - VersionMismatch Wrong SOAP Version

    Hello,
    I am attempting to create a web service from a function module, and to call this web service from outside of SAP.
    I used the Web Service Creation Wizard to create a web service from BAPI_CURRENCY_GETLIST, and tested it using the Web Service Homepage button from transaction WSADMIN. Everything seems to work OK so far.
    To test calling the web service, I copied the SOAP envelope from the web service homepage into a vbscript file:
    Const HOST = "http://<server>.<domain>:<port>"
    Const URL = "/sap/bc/srt/rfc/sap/ZWSD_Currency?sap-client=<nnn>"
    ' Create the HTTP object
    Set xmlhttp = CreateObject("Microsoft.XMLHTTP")
    Dim Request
    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"" xmlns:xs=""http://www.w3.org/2001/XMLSchema-instance"">" & _
              "<SOAP-ENV:Header>" & _
              "<sapsess:Session xmlns:sapsess=""http://www.sap.com/webas/630/soap/features/session/"">" & _
              "<enableSession>true</enableSession>" & _
              "</sapsess:Session>" & _
              "</SOAP-ENV:Header>" & _
              "<SOAP-ENV:Body>" & _
              "<ns1:CurrencyGetlist xmnls:ns1='urn:sap-com:document:sap:soap:functions:mc-style'>" & _
              "<CurrencyList><item>" & _
              "<CURRENCY></CURRENCY>" & _
              "<CURRENCY_ISO></CURRENCY_ISO>" & _
              "<ALT_CURR></ALT_CURR>" & _
              "<VALID_TO></VALID_TO>" & _
              "<LONG_TEXT></LONG_TEXT>" & _
              "</item></CurrencyList>" & _
              "</ns1:CurrencyGetlist>" & _
              "</SOAP-ENV:Body>" & _
              "</SOAP-ENV:Envelope>"
    xmlhttp.open "POST", HOST & URL, False
    xmlhttp.send (request)
    MsgBox (xmlhttp.responseXML.xml)
    When I execute the vbscript, the response is
    <soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelop/">
    <soap-env:Body>
      <soap-env:Fault>
        <faultcode>
          soap-env:VersionMismatch
        </faultcode>
        <faultstring xml:lang="en">
          Wrong SOAP Version
        </faultstring>
      </soap-env:Fault>
    </soap-env:Body>
    </soap-env:Envelope>
    The system log (transaction SM21) contains the messages:
    SOAP Runtime: SOAP Fault exception occurred in program CL_SOAP_MESSAGE===============CP in include CL_SOAP_ME SSAGE===============CM00X at position 34
    SOAP Runtime: Exception message: Severe processing error; SOAP fault handling required
    In the RFC trace (transaction SM59) I see
    XRFC> INFO 14:25:10: SOAP Transport Binding CL_SOAP_TRANSPORT_BINDING     <
    XRFC> ROOT->IFSOAP_TRANSPORT_BINDING~RESPONSE() Try to create response  <
    XRFC> message                                                             <
    XRFC>                                                                     <
    XRFC> INFO 14:25:10: SOAP Transport Binding CL_SOAP_TRANSPORT_BINDING     <
    XRFC> ROOT->IFSOAP_TRANSPORT_BINDING~RESPONSE() Response message        <
    XRFC> created                                                             <
    XRFC>                                                                     <
    XRFC> INFO 14:25:10: SOAP Transport binding CL_SOAP_HTTP_TPBND_ROOT       <
    XRFC> ->IF_SOAP_TRANSPORT_BINDING~RECEIVE() Try to receive message        <
    XRFC>                                                                     <
    XRFC> 20071218 142510 00037640: SOAP Fault Exception caught: : Wrong      <
    XRFC> SOAP Version                                                        <
    XRFC>                                                                     <
    XRFC>                                                                     
    XRFC> End of user trace                                                   
    How can I tell what version(s) of SOAP the NetWeaver 2004 platform supports? Has anyone seen and resolved this error?
    Thanks in advance,
    Mark

    Hi Anton,
    Thanks for the helpful suggestion. I did try setting SOAPAction using xmlhttp.setRequestHeader, but that didn't seem to make any difference. I may not have formatted the SOAP header correctly, however.
    What I noticed is that if I added a slash at the end of the xmlns:soap tag in the SOAP envelope, I got a different error message (SOAP Processing failure, error id = 112).
    I downloaded version 2.0 of the .NET framework and the SOAPSonar tool. SOAPSonar was able to format the SOAP envelope from the WSDL. When I pasted the SOAP envelope from SOAPSonar into my vbscript file, it worked. So, the vbscript looks like this:
    Const HOST = "http://nwr051.nwenergy:1080"
    Const URL = "/sap/bc/srt/rfc/sap/ZWSD_Currency?sap-client=100"
    Const FORMAT = "dd-MMM-yy"
    ' Create the HTTP object
    Set xmlhttp = CreateObject("Microsoft.XMLHTTP")
    Dim Request
    Request = "<?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"" xmlns:tns=""urn:sap-com:document:sap:soap:functions:mc-style"">" & _
              " <soap:Body>" & _
              "    <tns:CurrencyGetlist>" & _
              "      <CurrencyList>" & _
              "      </CurrencyList>" & _
              "    </tns:CurrencyGetlist>" & _
              "  </soap:Body>" & _
              "</soap:Envelope>"
    xmlhttp.open "POST", HOST & URL, False
    xmlhttp.send (request)
    MsgBox (xmlhttp.responseXML.xml)
    Again, thanks for taking the time to read through this and offer your insight.
    Regards,
    Mark

  • Web Service Options - Editing SOAP request Options

    I am trying to invoke a Web Service using Adobe LiveCycle ->
    Foundation -> Web Service.
    In the Web Service Options editor, while giving the SOAP request, I
    would want to be able to manipulate the data I send in the SOAP
    request.
    For example, I have a input Request XML which is in process_data [and
    which is the incoming request from Flex]. I am reading data from that
    XML and setting it to a corresponding tag in the SOAP request. I want
    to be able to have this feature wherein I dont include a tag at all in
    the SOAP request of I see that the corresponding tag in Request XML is
    empty.
    So if there is a  tag in Request [empty tag], I dont
    want to include the ContactName tag at all in the SOAP request.
    Meaning, I dont want to send an empty tag or a tag with NULL value. I
    want to delete that tag altogether in the SOAP request.
    Any ideas how I can go about this?
    Thanks!

    You can try making the whole SOAP Request a varibale of type XML. Then use a setValue before the web service call and built it the way you want.
    Jasmin

  • Call web service from portal/soap config .xml error

    Hi all,
    I am trying to call a web service from our portal. Setup is as follows:
    -Generate proxy classes and deploy it as a portal service
    I created this service using the wizard (Portal service from wsdl file client side) in NWDS.
    -Portal component which uses the portal service.
    When I try to run the application in the portal, I get the following exception:
    java.lang.IllegalStateException: Error in soapconfig.xml: The method mail of com.sap.portal.prt.soap.proxy.Alias portal service is not found..
    How can I solve this?
    Her is my xml  file:
    <?xml version="1.0" encoding="utf-8"?>
    <application>
      <application-config>
         <property name="SharingReference" value="com.sap.portal.runtime.application.soap"/>
      </application-config>
      <components>
        <component name="callwebproxy">
          <component-config>
            <property name="ClassName" value="com.portal.erbS.callwebproxy"/>
          </component-config>
          <component-profile/>
        </component>
        <component name="org_opach">
          <component-config>
            <property name="ClassName" value="com.test.org_opach"/>
          </component-config>
          <component-profile/>
        </component>
      </components>
      <services>
        <service alias="com.sap.portal.prt.soap.proxy.Alias" name="ProxyClass">
          <service-config>
            <property name="className" value="com.sap.portal.wsdl.webservices.service.connector.ProxyClass">
            </property>
            <property name="startup" value="false"/>
            <property name="WebEnable" value="false"/>
            <property name="Webproxy" value="true"/>
            <property name="SecurityZone" value="com.sap.portal.wsdl.webservices.service.connector/DefaultSecurity"/>
          </service-config>
          <service-profile>
            <property name="SystemAlias" value="Default_system_Alias"/>
          </service-profile>
        </service>
      </services>
    </application>
    reza

    Hi,
    Check your soapconfig.xml
    Your method should be defined there. If it's not there, then you're sure to get this error.
    For every method (in Webservice) that you call from your Portal Service, you should have it defined here.
    Remember, this is autogenerated.
      <?xml version="1.0" encoding="UTF-8" ?>
    - <!-- Portal WebService Configuration File.
      -->
    - <!-- Note: File generated automaticaly, don't modify this file.
      -->
    - <portal-webservices version="6,0,3" application-name="TestWS">
    - <portal-webservice name="com.company.mod.TestWS">
    - <webservice-method soapaction="" authenticated="false" styleenconding="RPC" javasignature="public abstract byte[] com.company.mod.TestWS.getValue(java.lang.String)" name="getValue">
    - <webservice-parameter defaultjavatype="java.lang.String" enconding="encoded" targetnamespace="http://www.w3.org/2001/XMLSchema" nillable="false" xmlattribute="false" required="true" ID="0" name="value">
      <webservice-type wsdltype="xsd:string"  javatype="java.lang.String" />
      </webservice-method>
      </portal-webservice>
      </portal-webservices>
    Regards,
    JP

  • Calling Web services using SOAP

    Hi,
    I am trying to execute a function through a webservice using a SOAP
    package and am getting the following error:ORA-30625: method dispatch
    on NULL SELF argument is disallowed. I think this is to do with one of
    the parameters being null but dont know how to fix this. Following is
    the function:
    CREATE OR REPLACE FUNCTION ILACPMSPRC.GET_GREETING_fnc (p_name IN
    VARCHAR2
    --, p_date VARCHAR2
    , p_age VARCHAR2 )
    RETURN NUMBER
    AS
    l_request soap_api_pkg.t_request;
    l_response soap_api_pkg.t_response;
    l_price NUMBER;
    -- DBMS_OUTPUT.ENABLE(20000);
    BEGIN
    DBMS_OUTPUT.ENABLE(20000);
    DBMS_OUTPUT.PUT_LINE('BEGIN');
    -- Set proxy details if no direct net connection.
    --UTL_HTTP.set_proxy('myproxy:4480', NULL);
    --UTL_HTTP.set_persistent_conn_support(TRUE);
    -- Set proxy authentication if necessary.
    --soap_api.set_proxy_authentication(p_username => 'myusername',
    -- p_password => 'mypassword');
    l_request := soap_api_pkg.new_request(p_method => 'ns1:validate',
    p_namespace => 'xmlns:ns1="http://
    impl.webservice.validation.workmgt.cb.irishlife.ie/xsd"');
    -- parameter 1 is name
    soap_api_pkg.add_parameter(p_request => l_request,
    p_name => 'workType',
    p_type => 'xsd:string',
    p_value => p_name);
    -- parameter 2 is date
    soap_api_pkg.add_parameter(p_request => l_request,
    p_name => 'workItemNo',
    p_type => 'xsd:string',
    p_value => 'ABC');
    --p_value   => '2007-01-01T00:00:00Z');
    -- parameter 3 is age
    soap_api_pkg.add_parameter(p_request => l_request,
    p_name => 'indexName',
    p_type => 'xsd:string',
    p_value => p_age);
    l_response := soap_api_pkg.invoke(p_request => l_request,
    p_url => 'http://
    10.253.55.139:7400/axis2/services/ValidationService',
    p_action => 'http://
    10.253.55.139:7400/axis2/services/ValidationService/validate');
    if l_response.doc is not null then
    dbms_output.put_line('the doc is not null');
    end if;
    DBMS_OUTPUT.PUT_LINE ( 'p_name = ' || p_name );
    HERE l_price := soap_api_pkg.get_return_value(p_response =>
    l_response,
    p_name =>
    'validateResponse',
    p_namespace =>
    'xmlns:ns1="http://impl.webservice.validation.workmgt.cb.irishlife.ie/
    xsd"');
    if l_price is null then
    dbms_output.put_line('opps, the price is null');
    end if;
    DBMS_OUTPUT.PUT_LINE('PRICE:'||l_price);
    RETURN l_price;
    EXCEPTION
    WHEN OTHERS THEN
    dbms_output.put_line(SQLCODE || ', ' || SQLERRM);
    RETURN NULL;
    END GET_GREETING_fnc;
    Where HERE is marked is where the problem lies...the package body is
    here:
    CREATE OR REPLACE PACKAGE BODY SOAP_API_PKG AS
    -- Name : http://www.oracle-base.com/dba/miscellaneous/soap_api
    -- Author : DR Timothy S Hall
    -- Description : SOAP related functions for consuming web services.
    -- Ammedments :
    -- When Who What
    -- =========== ========
    =================================================
    -- 04-OCT-2003 Tim Hall Initial Creation
    -- 23-FEB-2006 Tim Hall Parameterized the "soap" envelope tags.
    -- 08-JUN-2006 Tim Hall Add proxy authentication functionality.
    g_proxy_username VARCHAR2(50) := NULL;
    g_proxy_password VARCHAR2(50) := NULL;
    PROCEDURE set_proxy_authentication(p_username IN VARCHAR2,
    p_password IN VARCHAR2) AS
    BEGIN
    g_proxy_username := p_username;
    g_proxy_password := p_password;
    END;
    FUNCTION new_request(p_method IN VARCHAR2,
    p_namespace IN VARCHAR2,
    p_envelope_tag IN VARCHAR2 DEFAULT 'SOAP-ENV')
    RETURN t_request AS
    l_request t_request;
    BEGIN
    l_request.method := p_method;
    l_request.namespace := p_namespace;
    l_request.envelope_tag := p_envelope_tag;
    RETURN l_request;
    END;
    PROCEDURE add_parameter(p_request IN OUT NOCOPY t_request,
    p_name IN VARCHAR2,
    p_type IN VARCHAR2,
    p_value IN VARCHAR2) AS
    BEGIN
    p_request.body := p_request.body||'<'||p_name||' xsi:type="'||
    p_type||'">'||p_value||'</'||p_name||'>';
    DBMS_OUTPUT.PUT_LINE ( 'p_request.body = ' || p_request.body );
    END;
    --PROCEDURE add_parameter(p_request    IN OUT NOCOPY  t_request,
    -- p_name IN VARCHAR2,
    -- p_type IN DATE,
    -- p_value IN VARCHAR2) AS
    --BEGIN
    -- p_request.body := p_request.body||'<'||p_name||' xsi:type="'||
    p_type||'">'||p_value||'</'||p_name||'>';
    --END;
    --PROCEDURE add_parameter(p_request    IN OUT NOCOPY  t_request,
    -- p_name IN VARCHAR2,
    -- p_type IN INTEGER,
    -- p_value IN VARCHAR2) AS
    --BEGIN
    -- p_request.body := p_request.body||'<'||p_name||' xsi:type="'||
    p_type||'">'||p_value||'</'||p_name||'>';
    --END;
    PROCEDURE generate_envelope(p_request IN OUT NOCOPY t_request,
    p_env IN OUT NOCOPY VARCHAR2) AS
    BEGIN
    p_env := '<'||p_request.envelope_tag||':Envelope xmlns:'||
    p_request.envelope_tag||'="http://schemas.xmlsoap.org/soap/envelope/"
    ' ||
    'xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/1999/XMLSchema">' ||
    '<'||p_request.envelope_tag||':Body>' ||
    '<'||p_request.method||' '||p_request.namespace||' '||
    p_request.envelope_tag||':encodingStyle="http://schemas.xmlsoap.org/
    soap/encoding/">' ||
    p_request.body ||
    '</'||p_request.method||'>' ||
    '</'||p_request.envelope_tag||':Body>' ||
    '</'||p_request.envelope_tag||':Envelope>';
    END;
    PROCEDURE show_envelope(p_env IN VARCHAR2) AS
    i PLS_INTEGER;
    l_len PLS_INTEGER;
    BEGIN
    i := 1; l_len := LENGTH(p_env);
    WHILE (i <= l_len) LOOP
    DBMS_OUTPUT.put_line(SUBSTR(p_env, i, 60));
    i := i + 60;
    END LOOP;
    END;
    PROCEDURE check_fault(p_response IN OUT NOCOPY t_response) AS
    l_fault_node XMLTYPE;
    l_fault_code VARCHAR2(256);
    l_fault_string VARCHAR2(32767);
    BEGIN
    dbms_output.put_line('midas8-1');
    l_fault_node := p_response.doc.extract('/'||
    p_response.envelope_tag||':Fault',
    'xmlns:'||
    p_response.envelope_tag||'="http://schemas.xmlsoap.org/soap/
    envelope/');
    dbms_output.put_line('midas8-2');
    IF (l_fault_node IS NOT NULL) THEN
    dbms_output.put_line('midas8-3');
    l_fault_code := l_fault_node.extract('/'||
    p_response.envelope_tag||':Fault/faultcode/child::text()',
    'xmlns:'||
    p_response.envelope_tag||'="http://schemas.xmlsoap.org/soap/
    envelope/').getstringval();
    dbms_output.put_line('midas8-4');
    l_fault_string := l_fault_node.extract('/'||
    p_response.envelope_tag||':Fault/faultstring/child::text()',
    'xmlns:'||
    p_response.envelope_tag||'="http://schemas.xmlsoap.org/soap/
    envelope/').getstringval();
    dbms_output.put_line('midas8-5');
    --RAISE_APPLICATION_ERROR(-20000, l_fault_code || ' - ' ||
    l_fault_string);
    END IF;
    END;
    FUNCTION invoke(p_request IN OUT NOCOPY t_request,
    p_url IN VARCHAR2,
    p_action IN VARCHAR2)
    RETURN t_response AS
    l_envelope VARCHAR2(32767);
    l_http_request UTL_HTTP.req;
    l_http_response UTL_HTTP.resp;
    l_response t_response;
    BEGIN
    dbms_output.put_line('Invoking request');
    dbms_output.put_line('url :'||p_url);
    dbms_output.put_line('action :'|| p_action);
    generate_envelope(p_request, l_envelope);
    show_envelope(l_envelope);
    l_http_request := UTL_HTTP.begin_request(p_url, 'POST','HTTP/1.0');
    dbms_output.put_line('midas1');
    IF g_proxy_username IS NOT NULL THEN
    DBMS_OUTPUT.PUT_LINE('PROXY USERNAME IS NOT NULL');
    UTL_HTTP.set_authentication(r => l_http_request,
    username => g_proxy_username,
    password => g_proxy_password,
    scheme => 'Basic',
    for_proxy => TRUE);
    END IF;
    UTL_HTTP.set_header(l_http_request, 'Content-Type', 'text/xml');
    UTL_HTTP.set_header(l_http_request, 'Content-Length',
    LENGTH(l_envelope));
    UTL_HTTP.set_header(l_http_request, 'SOAPAction', p_action);
    UTL_HTTP.write_text(l_http_request, l_envelope);
    dbms_output.put_line('midas2');
    l_http_response := UTL_HTTP.get_response(l_http_request);
    dbms_output.put_line('midas3');
    UTL_HTTP.read_text(l_http_response, l_envelope);
    dbms_output.put_line('midas4');
    UTL_HTTP.end_response(l_http_response);
    dbms_output.put_line('midas5');
    l_response.doc := XMLTYPE.createxml(l_envelope);
    dbms_output.put_line('midas6');
    l_response.envelope_tag := p_request.envelope_tag;
    dbms_output.put_line('midas7');
    l_response.doc := l_response.doc.extract('/'||
    l_response.envelope_tag||':Envelope/'||l_response.envelope_tag||':Body/
    child::node()',
    'xmlns:'||
    l_response.envelope_tag||'="http://schemas.xmlsoap.org/soap/
    envelope/"');
    -- show_envelope(l_response.doc.getstringval());
    dbms_output.put_line('midas8');
    check_fault(l_response);
    dbms_output.put_line('midas9');
    RETURN l_response;
    END;
    FUNCTION get_return_value(p_response IN OUT NOCOPY t_response,
    p_name IN VARCHAR2,
    p_namespace IN VARCHAR2)
    RETURN VARCHAR2 AS
    BEGIN
    -- RETURN p_response.doc.extract('//'||p_name||'/
    child::text()',p_namespace).getstringval();
    dbms_output.put_line('function');
    dbms_output.put_line(p_name);
    DBMS_OUTPUT.PUT_LINE (p_response.doc.extract('//'||p_name||'/
    child::text()', p_namespace).getstringval());
    RETURN p_response.doc.extract('//'||p_name||'/child::text()',
    p_namespace).getstringval();
    END;
    END SOAP_API_PKG;
    Any help greatly appreciated!!

    Hello,
    I have not looked in detail to you code but I would like to point out that Oracle provides utilities to call Web Services from the database, using a DB package and/or Java in the DB.
    Have you looked to the documentation about:
    - Developing a Web Service Client in the Database
    regards
    Tugdual Grall

  • How to print SOAP request at client program when program calls web service.

    Hi friends,
    While calling a web service, I am getting following error: javax.xml.rpc.JAXRPCException: Failed to parse WSDL
    I believe it is due to an invalid parameter set for the request soap. I need to analysis this error. Can you help me to print SOAP request at client program when program calls web service.
    Is there any way to print SOAP request XML?
    Thanks.
    Jaykishan

    Is this question related to Oracle SOA suite? Which client are you using? Use SOAPUI to validate whether WSDL is correct.
    Regards,
    Anuj

  • Using utl_dbws to call web service

    We're calling a web service using utl_dbws and getting a response but the problem is the parameters. I haven't been able to find much documentation about how to use the utl_dbws package and have only one example to work from so could do with some expert help.
    The following code calls the webservice:
    procedure call_web_service(p_application_key in number,
    out_success_message out varchar2)
    is
    v_service utl_dbws.service;
    v_call utl_dbws.call;
    v_service_qname utl_dbws.qname;
    v_port_qname utl_dbws.qname;
    v_operation_qname utl_dbws.qname;
    v_string_type_qname utl_dbws.qname;
    v_return anydata;
    v_send_data anydata;
    v_return_string varchar2 (100);
    v_return_length number;
    v_parameter_string varchar2(32767);
    v_params utl_dbws.anydata_list;
    v_interview_xml xmltype;
    v_policy_number varchar2(14);
    -- return parameters
    v_interviewId varchar2(1000);
    v_statusType varchar2(1000);
    v_error_reason varchar2(1000);
    begin
    message_handler.set_module_name('ostp_to_xpb.call_web_service');
    message_handler.set_current_process('retrieve generated xml');
    begin
         select upload_xml, extractvalue(upload_xml, '/interview/externalReferenceNumber') policy_number
         into v_interview_xml, v_policy_number
              from xpb_upload_data
         where application_key = p_application_key
              and extractvalue(upload_xml, '/interview/externalReferenceNumber') is not null;
    --dbms_output.put_line('xml retrieved');
         exception
         when no_data_found then     
              v_success_message := 'No xml found for application_key = '||p_application_key;
              raise v_procedure_error;
         end;
         message_handler.set_current_process('call web service');
    -- create service
    v_service_qname := utl_dbws.to_qname (null, 'xpertBridge');
    v_service := utl_dbws.create_service (v_service_qname);
    -- create call
    v_port_qname := utl_dbws.to_qname (null, 'xpertBridgePort');
    v_operation_qname :=
    utl_dbws.to_qname
    ('http://m0154ukdox1/xpertBridgeEDSLV/services/xpertBridge',
    'orcaAppUpload'
    v_call := utl_dbws.create_call (v_service, v_port_qname, v_operation_qname);
    -- set endpoint
    utl_dbws.set_target_endpoint_address
    (v_call,
    'http://m0154ukdox1/xpertBridgeEDSLV/services/xpertBridge'
    -- set type of input and output parameters
    v_string_type_qname :=
    utl_dbws.to_qname ('http://www.w3.org/2001/XMLSchema', 'string');
    utl_dbws.add_parameter (v_call,
    'orcaXml',
    v_string_type_qname,
    'ParameterMode.IN'
    utl_dbws.add_parameter (v_call,
    'interviewId',
    v_string_type_qname,
    'ParameterMode.OUT'
    utl_dbws.add_parameter (v_call,
    'status',
    v_string_type_qname,
    'ParameterMode.OUT'
    utl_dbws.add_parameter (v_call,
    'errorReason',
    v_string_type_qname,
    'ParameterMode.OUT'
    utl_dbws.set_return_type (v_call, v_string_type_qname);
    -- convert xmltype to string for call
    select xmlserialize(document v_interview_xml)
    into v_parameter_string
    from dual;
    v_params (1) := anydata.convertvarchar(v_parameter_string);
    -- call
    v_return := utl_dbws.invoke (v_call, v_params);
    -- values which can be returned are Success / MessageError / ApplicationError
    v_return_string := v_return.accessvarchar2;
    dbms_output.put_line ('Message returned is: ' || nvl(v_return_string, 'No success message returned'));
    -- retrieve out parameters
    v_interviewId := v_params(2).accessvarchar2;
    dbms_output.put_line ('Message returned is: ' || nvl(v_interviewId, 'No interviewId returned'));
    v_statusType := v_params(3).accessvarchar2;
    dbms_output.put_line ('Message returned is: ' || nvl(v_statusType, 'No status type returned'));
    v_error_reason := v_params(4).accessvarchar2;
    dbms_output.put_line ('Message returned is: ' || nvl(v_error_reason, 'No error reason returned'));
    -- release call
    utl_dbws.release_call ( v_call );
    -- release services
    utl_dbws.release_service ( v_service );
    message_handler.set_module_finish;
    exception
    when others then
    out_success_message := message_handler.formatted_error_message;
    end call_web_service;
    Here is an excerpt from the WSDL relating to the call being made:
         <xs:element name="orcaAppUpload">
                        <xs:annotation>
                             <xs:documentation xml:lang="en">Message payload XML</xs:documentation>
                        </xs:annotation>
                        <xs:complexType>
                             <xs:sequence>
                                  <xs:element name="orcaXml" type="xs:string"/>
                             </xs:sequence>
                        </xs:complexType>
                   </xs:element>
                   <xs:element name="orcaAppUploadResponse">
                        <xs:complexType>
                             <xs:sequence>
                                  <xs:element name="interviewId" type="xs:string">
                                       <xs:annotation>
                                            <xs:documentation xml:lang="en">Interview identifier used to access the interview from UI</xs:documentation>
                                       </xs:annotation>
                                  </xs:element>
                                  <xs:element name="status" type="tns:StatusType"/>
                                  <xs:element name="errorReason" type="xs:string" minOccurs="0">
                                       <xs:annotation>
                                            <xs:documentation xml:lang="en">Only included if an error has occured </xs:documentation>
                                       </xs:annotation>
                                  </xs:element>
                             </xs:sequence>
                        </xs:complexType>
                   </xs:element>
                   <xs:simpleType name="StatusType">
                        <xs:restriction base="xs:string">
                             <xs:enumeration value="Success"/>
                             <xs:enumeration value="MessageError">
                                  <xs:annotation>
                                       <xs:documentation xml:lang="en">MessageError arises if the request payload was
    rejected by xpertBridge. This might be because it does not validate against the
    expected schema. Alternatively, a business rule is not satisfied.</xs:documentation>
                                  </xs:annotation>
                             </xs:enumeration>
                             <xs:enumeration value="ApplicationError">
                                  <xs:annotation>
                                       <xs:documentation xml:lang="en">ApplicationError would indicate application or system
    error or exception occured in xpertBridge while processing the request.</xs:documentation>
                                  </xs:annotation>
                             </xs:enumeration>
                        </xs:restriction>
                   </xs:simpleType>
              </xs:schema>
         <wsdl:message name="orcaAppUploadReq">
              <wsdl:part name="orcaAppUpload" element="tns:orcaAppUpload"/>
         </wsdl:message>
         <wsdl:message name="orcaAppUploadResp">
              <wsdl:part name="orcaAppUploadResponse" element="tns:orcaAppUploadResponse"/>
         </wsdl:message>
         <wsdl:portType name="xpertBridgePort">
              <wsdl:operation name="orcaAppUpload">
                   <wsdl:documentation>Upload (typically paper) application from ORCA/Ingenium</wsdl:documentation>
                   <wsdl:input message="tns:orcaAppUploadReq"/>
                   <wsdl:output message="tns:orcaAppUploadResp"/>
              </wsdl:operation>
         </wsdl:portType>
    etc.
    The error being returned is the following:
    ostp_to_xpb.call_web_service.call web service.ORA-29532: Java call terminated by uncaught Java exception: unexpected element name: expected=interviewId, actual=status
    Initially I started the params at params(0) but when I received the response above I thought it might solve the problem by starting at 1 - try anything :-) but still had the same response.
    I'm now out of ideas!

    UTL_DBWS is not part of XDB, XDB is more about being the web service, rather than calling a web service. Here's an example of using UTL_HTTP to test a XML DB Database Native Web Service which may help
    SQL*Plus: Release 11.2.0.1.0 Production on Wed Jun 17 08:23:14 2009
    Copyright (c) 1982, 2009, Oracle.  All rights reserved.
    SQL> spool password.log
    SQL> --
    SQL> connect sys/oracle as sysdba
    Connected.
    SQL> --
    SQL> def USERNAME=DBNWS
    SQL> --
    SQL> def PASSWORD=DBNWS
    SQL> --
    SQL> def HOSTNAME=&1
    SQL> --
    SQL> DROP USER &USERNAME CASCADE
      2  /
    old   1: DROP USER &USERNAME CASCADE
    new   1: DROP USER DBNWS CASCADE
    User dropped.
    SQL> grant connect, resource to &USERNAME identified by &PASSWORD
      2  /
    old   1: grant connect, resource to &USERNAME identified by &PASSWORD
    new   1: grant connect, resource to DBNWS identified by DBNWS
    Grant succeeded.
    SQL> begin
      2    dbms_network_acl_admin.drop_acl('localhost.xml');
      3  end;
      4  /
    PL/SQL procedure successfully completed.
    SQL> begin
      2    dbms_network_acl_admin.create_acl('localhost.xml', 'ACL for &HOSTNAME', '&USERNAME', true, 'connect');
      3    dbms_network_acl_admin.assign_acl('localhost.xml', '&HOSTNAME');
      4  end;
      5  /
    old   2:   dbms_network_acl_admin.create_acl('localhost.xml', 'ACL for &HOSTNAME', '&USERNAME', true, 'connect');
    new   2:   dbms_network_acl_admin.create_acl('localhost.xml', 'ACL for localhost', 'DBNWS', true, 'connect');
    old   3:   dbms_network_acl_admin.assign_acl('localhost.xml', '&HOSTNAME');
    new   3:   dbms_network_acl_admin.assign_acl('localhost.xml', 'localhost');
    PL/SQL procedure successfully completed.
    SQL> COMMIT
      2  /
    Commit complete.
    SQL> GRANT XDB_WEBSERVICES TO &USERNAME
      2  /
    old   1: GRANT XDB_WEBSERVICES TO &USERNAME
    new   1: GRANT XDB_WEBSERVICES TO DBNWS
    Grant succeeded.
    SQL> GRANT XDB_WEBSERVICES_OVER_HTTP TO &USERNAME
      2  /
    old   1: GRANT XDB_WEBSERVICES_OVER_HTTP TO &USERNAME
    new   1: GRANT XDB_WEBSERVICES_OVER_HTTP TO DBNWS
    Grant succeeded.
    SQL> connect &USERNAME/&PASSWORD
    Connected.
    SQL> --
    SQL> create or replace function GET_SQRT (INPUT_VALUE number) return number
      2  as
      3  begin
      4    return SQRT(2);
      5  end;
      6  /
    Function created.
    SQL> select GET_SQRT(2)
      2    from dual
      3  /
    GET_SQRT(2)
    1.41421356
    SQL> VAR URL VARCHAR2(4000)
    SQL> --
    SQL> BEGIN
      2    :url :=   'http://&USERNAME:&PASSWORD@&HOSTNAME:' || dbms_xdb.getHttpPort() || '/orawsv/&USERNAME/GET_SQRT';
      3  end;
      4  /
    old   2:   :url :=   'http://&USERNAME:&PASSWORD@&HOSTNAME:' || dbms_xdb.getHttpPort() || '/orawsv/&USERNAME/GET_SQRT';
    new   2:   :url :=   'http://DBNWS:DBNWS@localhost:' || dbms_xdb.getHttpPort() || '/orawsv/DBNWS/GET_SQRT';
    PL/SQL procedure successfully completed.
    SQL> print url
    URL
    http://DBNWS:DBNWS@localhost:80/orawsv/DBNWS/GET_SQRT
    SQL> --
    SQL> set long 100000 pages 0 lines 256
    SQL> --
    SQL> select     httpuritype( :url || '?wsdl' ).getXML() from dual
      2  /
    <definitions name="GET_SQRT" targetNamespace="http://xmlns.oracle.com/orawsv/DBNWS/GET_SQRT" xmlns="http://schemas.xmlsoap.org/wsdl/
    " xmlns:tns="http://xmlns.oracle.com/orawsv/DBNWS/GET_SQRT" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://
    schemas.xmlsoap.org/wsdl/soap/">
      <types>
        <xsd:schema targetNamespace="http://xmlns.oracle.com/orawsv/DBNWS/GET_SQRT" elementFormDefault="qualified">
          <xsd:element name="SNUMBER-GET_SQRTInput">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="INPUT_VALUE-NUMBER-IN" type="xsd:double"/>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="GET_SQRTOutput">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="RETURN" type="xsd:double"/>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
        </xsd:schema>
      </types>
      <message name="GET_SQRTInputMessage">
        <part name="parameters" element="tns:SNUMBER-GET_SQRTInput"/>
      </message>
      <message name="GET_SQRTOutputMessage">
        <part name="parameters" element="tns:GET_SQRTOutput"/>
      </message>
      <portType name="GET_SQRTPortType">
        <operation name="GET_SQRT">
          <input message="tns:GET_SQRTInputMessage"/>
          <output message="tns:GET_SQRTOutputMessage"/>
        </operation>
      </portType>
      <binding name="GET_SQRTBinding" type="tns:GET_SQRTPortType">
        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
        <operation name="GET_SQRT">
          <soap:operation soapAction="GET_SQRT"/>
          <input>
            <soap:body parts="parameters" use="literal"/>
          </input>
          <output>
            <soap:body parts="parameters" use="literal"/>
          </output>
        </operation>
      </binding>
      <service name="GET_SQRTService">
        <documentation>Oracle Web Service</documentation>
        <port name="GET_SQRTPort" binding="tns:GET_SQRTBinding">
          <soap:address location="http://localhost:80/orawsv/DBNWS/GET_SQRT"/>
        </port>
      </service>
    </definitions>
    SQL> set serveroutput on
    SQL> --
    SQL> DECLARE
      2    V_SOAP_REQUEST      XMLTYPE := XMLTYPE(
      3  '<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/
    encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      4          <SOAP-ENV:Body>
      5                  <m:SNUMBER-GET_SQRTInput xmlns:m="http://xmlns.oracle.com/orawsv/&USERNAME/GET_SQRT">
      6                          <m:INPUT_VALUE-NUMBER-IN>2</m:INPUT_VALUE-NUMBER-IN>
      7                  </m:SNUMBER-GET_SQRTInput>
      8          </SOAP-ENV:Body>
      9  </SOAP-ENV:Envelope>');
    10    V_SOAP_REQUEST_TEXT CLOB := V_SOAP_REQUEST.getClobVal();
    11    V_REQUEST           UTL_HTTP.REQ;
    12    V_RESPONSE          UTL_HTTP.RESP;
    13    V_BUFFER            VARCHAR2(1024);
    14  BEGIN
    15
    16    V_REQUEST := UTL_HTTP.BEGIN_REQUEST(URL => :URL, METHOD => 'POST');
    17    UTL_HTTP.SET_HEADER(V_REQUEST, 'User-Agent', 'Mozilla/4.0');
    18    V_REQUEST.METHOD := 'POST';
    19    UTL_HTTP.SET_HEADER (R => V_REQUEST, NAME => 'Content-Length', VALUE => DBMS_LOB.GETLENGTH(V_SOAP_REQUEST_TEXT));
    20    UTL_HTTP.WRITE_TEXT (R => V_REQUEST, DATA => V_SOAP_REQUEST_TEXT);
    21
    22    V_RESPONSE := UTL_HTTP.GET_RESPONSE(V_REQUEST);
    23    LOOP
    24      UTL_HTTP.READ_LINE(V_RESPONSE, V_BUFFER, TRUE);
    25      DBMS_OUTPUT.PUT_LINE(V_BUFFER);
    26    END LOOP;
    27    UTL_HTTP.END_RESPONSE(V_RESPONSE);
    28  EXCEPTION
    29    WHEN UTL_HTTP.END_OF_BODY THEN
    30      UTL_HTTP.END_RESPONSE(V_RESPONSE);
    31  END;
    32  /
    old   5:                <m:SNUMBER-GET_SQRTInput xmlns:m="http://xmlns.oracle.com/orawsv/&USERNAME/GET_SQRT">
    new   5:                <m:SNUMBER-GET_SQRTInput xmlns:m="http://xmlns.oracle.com/orawsv/DBNWS/GET_SQRT">
    <?xml version="1.0" ?>
    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
    <GET_SQRTOutput xmlns="http://xmlns.oracle.com/orawsv/DBNWS/GET_SQRT">
    <RETURN>1.41421356237309504880168872420969807857</RETURN>
    </GET_SQRTOutput>
    </soap:Body>
    </soap:Envelope>
    PL/SQL procedure successfully completed.
    SQL> set serveroutput on
    SQL> --
    SQL>
    SQL>

  • Add cookie to HTTP request header when calling web service

    I'm trying to call web service using JDeveloper 11g. I successfully generated web service proxy from WSDL document. I can successfully call this particular web service's method "login" which returns "session_id", which then needs to be inserted as a cookie in the HTTP request header in later calls to other methods. This is how the HTTP request header should look like:
    POST /webservice HTTP/1.1
    Host: registrar.carnet.hr
    Connection: Keep-Alive
    User-Agent: .hr domene
    Content-Type: text/xml; charset=utf-8
    SOAPAction: "https://registrar.carnet.hr/webservice#get_domain_name"
    Content-Length: 532
    Cookie: session_id=f3po0ba01a47gd64792151ee43a25765;
    How can this be accomplished? There is not much code that I wrote, everything is generated by JDeveloper's wizard...
    public static void main(String[] args) {
    try {
    RegistrarServicePortPortClient client =
    new RegistrarServicePortPortClient();
    client.setPortCredentialProviderList();
    // add your code here
    String login;
    login = client.login("username", "password");
    System.out.println(login);
    String myCookie = "session_id="+login;
    System.out.println(myCookie);
    *// what can be done to add myCookie to the HTTP request header?*
    } catch (Exception ex) {
    ex.printStackTrace();
    Thanks in advance,
    Bruno

    Hi Vishal,
    it's not a requirement but I wasn't able to create JAX-WS Style proxy from this WSDL: https://registrar.carnet.hr/wsdl
    The exception I'm getting is:
    oracle.jdeveloper.webservices.model.WebServiceException: Error creating model from wsdl "https://registrar.carnet.hr/wsdl": Could not bind "{http://schemas.xmlsoap.org/soap/encoding/}Array" in message part "return" to a Java type. If doc/lit style is used then message part should reference to global schema element.
         at oracle.jdeveloper.webservices.model.java.JavaWebService.createPortTypes(JavaWebService.java:1635)
         at oracle.jdeveloper.webservices.model.WebService.createServiceFromWSDL(WebService.java:2846)
         at oracle.jdeveloper.webservices.model.WebService.createServiceFromWSDL(WebService.java:2611)
         at oracle.jdeveloper.webservices.model.java.JavaWebService.<init>(JavaWebService.java:509)
         at oracle.jdeveloper.webservices.model.java.JavaWebService.<init>(JavaWebService.java:461)
         at oracle.jdeveloper.webservices.model.proxy.WebServiceProxy$ProxyJavaWebService.<init>(WebServiceProxy.java:2268)
         at oracle.jdeveloper.webservices.model.proxy.WebServiceProxy.updateServiceModel(WebServiceProxy.java:1701)
         at oracle.jdeveloper.webservices.model.proxy.WebServiceProxy.setDescription(WebServiceProxy.java:525)
         at oracle.jdevimpl.webservices.wizard.jaxrpc.proxy.ProxyJaxWsSpecifyWSDLPanel.setDescription(ProxyJaxWsSpecifyWSDLPanel.java:238)
         at oracle.jdevimpl.webservices.wizard.jaxrpc.common.SpecifyWsdlPanel.buildModel(SpecifyWsdlPanel.java:1109)
         at oracle.jdevimpl.webservices.wizard.jaxrpc.common.SpecifyWsdlPanel$5.run(SpecifyWsdlPanel.java:661)
         at oracle.ide.dialogs.ProgressBar.run(ProgressBar.java:655)
         at java.lang.Thread.run(Thread.java:619)
    Caused by: oracle.jdeveloper.webservices.tools.WsdlValidationException: Error creating model from wsdl "https://registrar.carnet.hr/wsdl": Could not bind "{http://schemas.xmlsoap.org/soap/encoding/}Array" in message part "return" to a Java type. If doc/lit style is used then message part should reference to global schema element.
         at oracle.jdevimpl.webservices.tools.wsa.WsaAdaptor.newWsdlValidationException(WsaAdaptor.java:825)
         at oracle.jdevimpl.webservices.tools.wsa.WsaAdaptor.getSeiInfo(WsaAdaptor.java:515)
         at oracle.jdeveloper.webservices.tools.WebServiceTools.getSeiInfo(WebServiceTools.java:523)
         at oracle.jdeveloper.webservices.model.java.JavaWebService.getSeiInfo(JavaWebService.java:1741)
         at oracle.jdeveloper.webservices.model.java.JavaWebService.createPortTypes(JavaWebService.java:1496)
         ... 12 more
    Caused by: oracle.j2ee.ws.common.tools.api.ValidationException: Error creating model from wsdl "https://registrar.carnet.hr/wsdl": Could not bind "{http://schemas.xmlsoap.org/soap/encoding/}Array" in message part "return" to a Java type. If doc/lit style is used then message part should reference to global schema element.
         at oracle.j2ee.ws.tools.wsa.jaxws.JaxwsWsdlToJavaTool.getJAXWSModel(JaxwsWsdlToJavaTool.java:664)
         at oracle.j2ee.ws.tools.wsa.WsdlToJavaTool.createJAXWSModel(WsdlToJavaTool.java:475)
         at oracle.j2ee.ws.tools.wsa.Util.getJaxWsSeiInfo(Util.java:1357)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         at oracle.jdevimpl.webservices.tools.wsa.Assembler$2$1.invoke(Assembler.java:218)
         at $Proxy39.getJaxWsSeiInfo(Unknown Source)
         at oracle.jdevimpl.webservices.tools.wsa.WsaAdaptor.getSeiInfo(WsaAdaptor.java:505)
         ... 15 more
    Caused by: oracle.j2ee.ws.tools.jaxws.wsdl.ModelBuilderException: Could not bind "{http://schemas.xmlsoap.org/soap/encoding/}Array" in message part "return" to a Java type. If doc/lit style is used then message part should reference to global schema element.
         at oracle.j2ee.ws.tools.jaxws.wsdl.OperationMappingBuilder.getPartJavaType(OperationMappingBuilder.java:702)
         at oracle.j2ee.ws.tools.jaxws.wsdl.OperationMappingBuilder.createParameterMapping(OperationMappingBuilder.java:675)
         at oracle.j2ee.ws.tools.jaxws.wsdl.OperationMappingBuilder.createParameterMapping(OperationMappingBuilder.java:663)
         at oracle.j2ee.ws.tools.jaxws.wsdl.OperationMappingBuilder.buildBarePortTypeParameters(OperationMappingBuilder.java:490)
         at oracle.j2ee.ws.tools.jaxws.wsdl.OperationMappingBuilder.buildBarePortTypeOperation(OperationMappingBuilder.java:301)
         at oracle.j2ee.ws.tools.jaxws.wsdl.OperationMappingBuilder.buildPortTypeOperation(OperationMappingBuilder.java:216)
         at oracle.j2ee.ws.tools.jaxws.wsdl.OperationMappingBuilder.build(OperationMappingBuilder.java:93)
         at oracle.j2ee.ws.tools.jaxws.wsdl.WSDLToJavaModelBuilder.buildPortTypeOperations(WSDLToJavaModelBuilder.java:635)
         at oracle.j2ee.ws.tools.jaxws.wsdl.WSDLToJavaModelBuilder.buildSEI(WSDLToJavaModelBuilder.java:435)
         at oracle.j2ee.ws.tools.jaxws.wsdl.WSDLToJavaModelBuilder.buildSEI(WSDLToJavaModelBuilder.java:402)
         at oracle.j2ee.ws.tools.jaxws.wsdl.WSDLToJavaModelBuilder.buildPorts(WSDLToJavaModelBuilder.java:383)
         at oracle.j2ee.ws.tools.jaxws.wsdl.WSDLToJavaModelBuilder.buildService(WSDLToJavaModelBuilder.java:322)
         at oracle.j2ee.ws.tools.jaxws.wsdl.WSDLToJavaModelBuilder.buildServices(WSDLToJavaModelBuilder.java:299)
         at oracle.j2ee.ws.tools.jaxws.wsdl.WSDLToJavaModelBuilder.buildAll(WSDLToJavaModelBuilder.java:271)
         at oracle.j2ee.ws.tools.jaxws.wsdl.WSDLToJavaModelBuilder.build(WSDLToJavaModelBuilder.java:188)
         at oracle.j2ee.ws.tools.wsa.jaxws.JaxwsWsdlToJavaTool.getJAXWSModel(JaxwsWsdlToJavaTool.java:656)
         ... 24 more
    Caused by: oracle.j2ee.ws.common.databinding.tools.spi.SchemaFindException
         at oracle.j2ee.ws.common.tools.databinding.jaxb20.Jaxb20JavaDatabindingContext.getJavaTypeForSchemaType(Jaxb20JavaDatabindingContext.java:52)
         at oracle.j2ee.ws.tools.jaxws.wsdl.OperationMappingBuilder.getPartJavaType(OperationMappingBuilder.java:696)
         ... 39 more
    Thanks,
    Bruno

  • Calling Web Service from CRM using proxy

    Hi all,
    I'm facing a problem trying to call a web service from CRM (WAS 620) via XI 3.0. The response that XI recieves from the web service contains SOAP Envelope, and the mapping fails because of it. I built the proxy manually, because if I load WSDL the proxy generation in CRM generates error that sais that external definition coudn't be used.
    Is there any way to remove SOAP envelope from the response while mapping?
    Is it possible to call web service from WAS 620?
    Thanks!!!!
    Anya.

    Hi Manish,
    SOAP adapter does pass the message to XI (this message contains SOAP envelope although XI expects to get message without it), and during the mapping step i get "Runtime Exception in Message-Mapping transformatio~".
    I suppose it's because i created proxy manually. I did so because when i imported WSDL, and tried to generate proxy in CRM, i got an error message that said that proxy couldn't be generated because external definitions are only allowed in XI 3. But my XI version is 3.0! And when I generate the same proxy in my R/3 system that is installed on WAS 640, it works.
    What can I do?
    Cheers,
    Anya.

  • How to call web service using J2SE 1.3?

    Dear All,
    i have developed a web service by jdev 10.1.3 (JAX-RPC with web service security
    enabled).
    i generate the ws proxy (jdev 10.1.3) and run it with wsclient_extended.jar (required JDK 1.4.1 or above??).
    but one of my client say he has to use J2SE 1.3.x (as OS=AIX 4.3 that without J2SE
    1.4.x ), could anyone tell me how can generate ws proxy (with supporting
    library) for jdk 1.3.x?
    if oracle don't have such library / tools, any third party tools / library available?
    thank you.
    lsp

    I'm found answer:
    Java and SAP Portal blog: How to call web service from java code example

  • How to copy List item from one list to another using SPD workflow using HTTP call web service

    Hi,
    How to copy List item from one list to another using SPD workflow using HTTP call web service.
    Both the Lists are in different Web applications.
    Regards, Shreyas R S

    Hi Shreyas,
    From your post, it seems that you are using SharePoint 2013 workflow platform in SPD.
    If that is the case, we can use Call HTTP web service action to get the item data, but we cannot use Call HTTP web service to create a new item in the list in another web application with these data.
    As my test, we would get Unauthorized error when using Call HTTP web service action to create a new item in a list in another web application.
    So I recommend to achieve this goal programmatically.
    More references:
    https://msdn.microsoft.com/en-us/library/office/jj164022.aspx
    https://msdn.microsoft.com/en-us/library/office/dn292552.aspx?f=255&MSPPError=-2147217396
    Thanks,
    Victoria
    TechNet Community Support
    Please remember to mark the replies as answers if they help, and unmark the answers if they provide no help. If you have feedback for TechNet Support, contact
    [email protected]

  • Error 504 DNS look up failed while calling web services using XML

    Hi, I am trying to call web service from Oracle using XML.
    Everything seems to be in place but im getting an error "The webserver for <My End URL> reported that an error occurred while trying to access the website. Please click here to return to the previous page."
    If I directly access the end url from my browser its accessible and seems to work fine.
    The http response receiveed is mentioned below:
    Status code: 403
    Reason phrase: Forbidden
    <html>
    <head>
    <title>504 DNS look up failed</title>
    </head>
    <body>
    <font size=2><table width="100%"><tr><td bgcolor=#3300cc align="center" colspan=2>504 DNS look up failed</td></tr></table><br><br>The webserver for 'My End URL' reported that an error occurred while trying to access the website. Please click <u>here</u> to return to the previous page.<br><br><hr></font></body>
    </html>
    Im using Oracle 9i
    Please help
    Edited by: 927814 on Apr 15, 2012 11:41 PM
    Edited by: 927814 on Apr 15, 2012 11:46 PM

    Without far greater details as to what you are doing, what you have installed, and what you have tried, not much can be offered. All that I can gather from the information you provided is that the server name you are trying to contact either is not responding or is invalid. If you have Forms installed on your local machine (for example using Developer Suite), try using localhost rather than the hostname. For example, http://localhost:port/forms/frmservlet?form=yourform
    http://www.checkupdown.com/status/E504.html

  • Call web service using code.

    we want to call a web service from ADF JSP form.
    We used web service data control. But deployment failed.
    we applied Patch 5878326 to JDeveloper 10.1.3.3.0 and OAS.
    But problem is not solved.
    So we need a new way to call web services.
    is there any other way to call web services from Jdev.
    any code sample will be appreciated.
    Thanks.

    Workaround for the Connection Failure
    In JDeveloper, locate the .deploy file in the Resources folder of your web application project.
    Double-click the file to open the WAR Deployment Profile Properties dialog.
    Expand File Groups - WEB-INF/classes - Contributors.
    In the Contributors panel, click Add and use the Browse dialog to locate the .adf folder in the root for your application (for example, /jdev/mywork//.adf path.)
    Select the .adf folder and add it as a contributor to the deployment profile.
    Note that the .adf folder does not become part of the deployable archive. This merely ensures that the contents of the META-INF get placed in an appropriate location in the archive that will permit the web container to find it when the application loads.
    The failure to get the connection to Webservice is beacuse the "connections.xml" is not available in the deployed archive.
    This has been release note'd as in
    http://www.oracle.com/technology/products/jdev/htdocs/10.1.3.0.3/10.1.3_addendum.html under "Deployment issues"

  • Calling Web Service using utl_http; Parameters not being recognized by ws

    Hi All,
    I have set-up appropriate function & packages based on this article:
    Calling Web Services from PL/SQL in the Oracle9i Database -
    http://www.oracle.com/technology/tech/webservices/htdocs/samples/dbwebservice/DBWebServices_PLSQL.html
    I am able to consume my sample web service using the above, but my web service doesn't see any parameters that I'm passing.
    Any ideas? I'm using Oracle 10g calling a .Net 1.1 web service
    Thanks,
    Robert

    Hello,
    I am not able to access the link you posted about calling a web service. Could please share your code again ?
    Thanks in advance for your help...
    Lionel

Maybe you are looking for

  • Upgrade from Solaris 8 to Solaris 9... it sort of worked

    I upgraded a V440 from solaris 8 to solaris 9 last night and it sort of worked. I tried installing off of disk1 instead of the install disk and it wouldn't mount the cd. So I just installed off of the install disk. All seemed to go well but after the

  • JDBC Bean for JSP

    Any JDBC beans available for JSP? I know regular JDBC can be used but putting database connection logic in jsp sort of destroys its purpose. Are any beans in the works? Freeware/OSS beans?

  • User Exit for Material Group...Urgent help needed

    Does anybody have an idea of which user exit can be used to capture the changes made to material group in MM02(Material)..... Urgent help needed...

  • Premiere elements did not install

    I purchased photoshop elements and premiere elements 11 (windows, english) from adobe by digital download. Apparently only photoshop elements installed. How do i install premiere elements? I am on Windows 8 OS.

  • Materialized view being ignored

    Hi all Running Oracle 10.2.0.3 on Solaris 9. I'm not sure how much info to provide at this stage but i'm having a problem with a materialized view. The database contains tens of thousands of digitized books and an application to help manage all the d