SOAP Packaging

Hi All,
Does anyone have any experience in SOAP packaging using B2B 11g for any Document Protocols such as cXML, xCBL etc?
Scenario :
Customer can accept Documents (cXML,xCBL) using only SOAP protocol. Is there any way to define SOAP wrapper (Specified by Customer) around the Business document we want to send??
Out of the box or any custom solution needs to be developed.
Thanks,
Ambadas.

Hi Ramesh,
I've few clients who want to communicate using their own Homegrown SOAP which is not ebMS. e.g SupplyPro connect uses
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsd="http://www.w3.org/1999/XMLSchema"
xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Header xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SoapHeader>
<Authentication>
<UserName>SupplyPro Connect UserName Assigned by Hyphen Solutions</UserName>
<Password>SupplyPro Connect Password Assigned by Hyphen Solutions</Password>
</Authentication>
<Properties>
<SenderPartyID>Unique Supplier Identifier assigned By Hyphen Solutions</SenderPartyID>
<SenderAppID>Suppliers ApplicationID Assigned by Supplier</SenderAppID>
<SenderMsgID>Unique Identifier Assigned by Supplier for this Message</SenderMsgID>
<ResponderAppID>SupplyPro Connect ApplicationID Assigned by Hyphen Solutions</ResponderAppID>
</Properties>
</SoapHeader>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<Documents>One or more XCBL40 documents</Documents>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
This is to exchange all B2B Documents like Order, Invoice etc in XCBL format.
Such many custom implementations are out there in market.
What is the time frame for the next version of B2B which supports custom SOAP?? Will it be able to accommodate any WSDL specified by Business Partner??
By the time the product is out, is there any suggestion on how to implement this using Oracle SOA products.
Let me know.
Thanks,
Ambadas.

Similar Messages

  • Invoke Web Services - Send empty SOAP package

    We have a SOAP interface that we have consumed through a service layer for 5+ years.
    There are many functions available from this endpoint.
    Example, one is called Ping and requires no additional parameters. We can send this via Orchestrator with no issues and we get a response.
    However all other functions have param requirements such as a set name or authentication data.
    Orchestrator has no issue pulling the Format Hint. Ive attached wireshark and fiddler and all calls get sent by Orchestrator with empty packages, all parms get stripped.
    We can use SOAP runner and have no issues sending these commands.
    Thoughts?
    Designer: 7.2.84.0
    Orchestrator Management Servers:
     NAME: 7.2.84.0
    Libraries:
     Compression-6-4109999.op4caw: 7.2.84.0
     Compression-6-4109999.op4saw: 7.2.84.0
     Database-14-40801.op4caw: 7.2.84.0
     Database-14-40801.Op4saw: 7.2.84.0
     DataMapper-689-5000001.op4caw: 7.2.84.0
     DataMapper-689-5000001.op4saw: 7.2.84.0
     DateTime-1-5000001.op4saw: 7.2.84.0
     Email-2-40803.op4saw: 7.2.84.0
     Email-2-4109999.op4caw: 7.2.84.0
     Encryption-628-5000001.op4caw: 7.2.84.0
     Encryption-628-5000001.op4saw: 7.2.84.0
     EncryptionDomainLibResources.dll: 7.2.84.0
     FileAndFolderFOCommon.dll: 7.2.84.0
     FileList-38-40801.op4cbw: 7.2.84.0
     FileManagement-4-40802.op4caw: 7.2.84.0
     FileManagement-4-40802.op4saw: 7.2.84.0
     FileManagementClientExtension.dll: 7.2.84.0
     FileManagementDomain.dll: 7.2.84.0
     FileManagementResource.dll: 7.2.84.0
     FileManagementServerExtension.dll: 7.2.84.0
     FileMonitorClientExtension.dll: 7.2.84.0
     FileMonitorDomain.dll: 7.2.84.0
     FileMonitorServerExtension.dll: 7.2.84.0
     FolderMonitorClientExtension.dll: 7.2.84.0
     FolderMonitorDomain.dll: 7.2.84.0
     FolderMonitorServerExtension.dll: 7.2.84.0
     FormatDateTimeClientExtension.dll: 7.2.84.0
     FormatDateTimeDomainLibResources.dll: 7.2.84.0
     FormatDateTimeServerExtension.dll: 7.2.84.0
     Internet-13-40801.op4caw: 7.2.84.0
     Internet-13-4109999.op4saw: 7.2.84.0
     jf.SCOrch.Integration.DataManipulation.DataManipulationImages.dll: 1.0.0.0
     jf.SCOrch.Integration.SharePoint.ActivityImages.dll: 1.0.0.0
     Kelverion.IntegrationPack.RunbookManagement.Images.dll: 1.0.0.1
     Kelverion.IntegrationPack.SqlServer.Images.dll: 2.0.0.0
     ManageTextFileClientExtension.dll: 7.2.84.0
     ManageTextFileDomain.dll: 7.2.84.0
     ManageTextFileServerExtension.dll: 7.2.84.0
     Microsoft.EnterpriseManagement.Core.dll: 7.5.3046.0
     Microsoft.SystemCenter.Orchestrator.ActiveDirectoryIP.Images.dll: 7.2.43.0
     Microsoft.SystemCenter.Orchestrator.Integration.SCCM2012.ClientExtension.dll: 7.2.56.0
     Microsoft.SystemCenter.Orchestrator.Integration.SCCM2012.Domain.dll: 7.2.56.0
     Microsoft.SystemCenter.Orchestrator.Integration.SCCM2012.ServerExtension.dll: 7.2.56.0
     Microsoft.SystemCenter.Orchestrator.Integration.SCOM2012.ClientExtension.dll: 7.2.56.0
     Microsoft.SystemCenter.Orchestrator.Integration.SCOM2012.Domain.dll: 7.2.56.0
     Microsoft.SystemCenter.Orchestrator.Integration.SCOM2012.ServerExtension.dll: 7.2.56.0
     Microsoft.SystemCenter.Orchestrator.Integration.SCSM2012.ClientExtension.dll: 7.2.56.0
     Microsoft.SystemCenter.Orchestrator.Integration.SCSM2012.Domain.dll: 7.2.56.0
     Microsoft.SystemCenter.Orchestrator.Integration.SCSM2012.ServerExtension.dll: 7.2.56.0
     Microsoft.SystemCenter.Orchestrator.Integration.Toolkit.IP.ClientExtension.2.dll: 7.2.7.0
     Microsoft.SystemCenter.Orchestrator.Integration.Toolkit.IP.ClientExtension.dll: 7.0.359.0
     Microsoft.SystemCenter.Orchestrator.Integration.Toolkit.IP.ServerExtension.2.dll: 7.2.7.0
     Microsoft.SystemCenter.Orchestrator.Integration.Toolkit.IP.ServerExtension.dll: 7.0.359.0
     Microsoft.SystemCenter.Orchestrator.Integration.Toolkit.Wizard.Images.dll: 7.2.7.0
     MpCore4LibResources.dll: 7.2.84.0
     MpCoreLibResources.dll: 7.2.84.0
     NetBrowser-40-40801.op4cbw: 7.2.84.0
     NetUseObjectsClientExtension.dll: 7.2.84.0
     NetUseObjectsServerExtension.dll: 7.2.84.0
     Network-24-407.op4caw: 7.2.84.0
     Network-24-40801.op4saw: 7.2.84.0
     ObjectResources.dll: 7.2.84.0
     OpCoreLibResources.dll: 7.2.84.0
     OpToolsLibResources.dll: 7.2.84.0
     ProcessBrowser-69-40801.op4cbw: 7.2.84.0
     PS_Tools.dll: 1.0.0.19
     QueryXmlClientExtension.dll: 7.2.84.0
     QueryXmlServerExtension.dll: 7.2.84.0
     RandomStringClientExtension.dll: 7.2.84.0
     RandomStringDomainLibResources.dll: 7.2.84.0
     RandomStringServerExtension.dll: 7.2.84.0
     RASPhoneBook-56-40801.op4sbw: 7.2.84.0
     RASPhoneBrowser-56-40801.op4cbw: 7.2.84.0
     RunScriptClientExtension.dll: 7.2.84.0
     RunScriptDomain.dll: 7.2.84.0
     RunScriptServerExtension.dll: 7.2.84.0
     Schedule-1-40801.op4caw: 7.2.84.0
     SnmpClient-119-4109999.op4caw: 7.2.84.0
     SNMPClientExtension.dll: 7.2.84.0
     SnmpDomainLibResources.dll: 7.2.84.0
     SnmpService-119-4109999.op4saw: 7.2.84.0
     SSHClient-117-4109999.op4caw: 7.2.84.0
     SSHService-117-4109999.op4saw: 7.2.84.0
     StandardObjects.dll: 7.2.84.0
     SystemCenter.IntegrationPack.ExchangeAdmin.Images.dll: 7.2.51.0
     SystemCenter.IntegrationPack.ExchangeUser.Images.dll: 7.2.49.0
     SystemCenter.IntegrationPack.Ftp.Images.dll: 7.2.47.0
     SystemCenter.IntegrationPack.SharePoint.Images.dll: 7.2.52.0
     SystemUtilities-16-40801.op4caw: 7.2.84.0
     SystemUtilities-16-40802.op4saw: 7.2.84.0
     TextFile-15-40801.op4caw: 7.2.84.0
     TextFile-15-40801.op4saw: 7.2.84.0
     WebServiceChannelLibResources.dll: 7.2.84.0
     WebServicesBase.dll: 7.2.84.0
     WebServicesClientExtension.dll: 7.2.84.0
     WebServicesProxy.dll: 7.2.84.0
     WebServicesServerExtension.dll: 7.2.84.0
     WindowsUtilities-21-40801.op4caw: 7.2.84.0
     WindowsUtilities-21-40801.op4saw: 7.2.84.0
     Wmi-8-40802.op4caw: 7.2.84.0
     Wmi-8-40809.op4saw: 7.2.84.0
     XsltTransformClientExtension.dll: 7.2.84.0
     XsltTransformServerExtension.dll: 7.2.84.0
    Moved On

    I've noticed the same behaviour.
    When I call a webservice using the "Invoke Web Services"-activity using only the elements of the xml e.g. <object>somevalue</object> the xml that gets sent is complete and consumed by the webservice.
    However when I call another method that requires attributes (e.g. <object name="something">somevalue</object>) the attributes (name="something") gets stripped from the xml causing the webservice to bounce my call as certain
    (mandatory) parameters are missing.
    I've confirmed this through Wireshark.
    I'm possitive my XML payload is correct as this works through both SOAPUI and Powershell.
    (not intending to hijack the question, mainly confirming the behaviour and providing and additional use case)

  • Webservices using PHP - PEAR SOAP Package

    Hello,
    I am looking to query then use IDM attributes in our PHP based portal using webservices.
    THe PHP PEAR SOAP Client is the library I intend to use.
    Has anyone successfully used a PHP Library to extract IDM attributes?
    Below is the start of my venture.
    Thank you in advance
    <?
    /* Include PEAR::SOAP's SOAP_Client class: */
    require_once('SOAP/Client.php');
    /* Create a new SOAP client using PEAR::SOAP's SOAP_Client-class: */
    $client = new SOAP_Client('http://domain.name.com/idm/servlet/rpcrouter2');
    /*Send request to server to the server and store its response in $response: */
    $response = $client->call('rpcrounter2',$params,array('namespace'=> 'urn:oasis:
    names:tc:DSML:2:0:core','trace'=>'true'));
    /* Print the server-response: */
    echo $response;

    Hello,
    I am looking to query then use IDM attributes in our PHP based portal using webservices.
    THe PHP PEAR SOAP Client is the library I intend to use.
    Has anyone successfully used a PHP Library to extract IDM attributes?
    Below is the start of my venture.
    Thank you in advance
    <?
    /* Include PEAR::SOAP's SOAP_Client class: */
    require_once('SOAP/Client.php');
    /* Create a new SOAP client using PEAR::SOAP's SOAP_Client-class: */
    $client = new SOAP_Client('http://domain.name.com/idm/servlet/rpcrouter2');
    /*Send request to server to the server and store its response in $response: */
    $response = $client->call('rpcrounter2',$params,array('namespace'=> 'urn:oasis:
    names:tc:DSML:2:0:core','trace'=>'true'));
    /* Print the server-response: */
    echo $response;

  • SOAP on Sun Java System Application Server 9

    I am running the Sun Java System Application Server 9 (SJSAS). My goal is to have SOAP running on the server to handle incoming messages. I cannot find the answers to the following critical questions anywhere.
    1. Should I be creating my own soap client/server with the javax.xml.soap package, using some utility that might come bundled with SJSAS that I don't know about, or using something like Apache AXIS?
    2. Whatever I use, how should it be deployed to the application server? AXIS comes as a bunch of jar files, but to deploy a web service to SJSAS requires a war. Instructions for other application servers for using AXIS seem not to apply for SJSAS for this reason.
    3. After I get the server installed, how do I actually connect that to any of the rest of the code on my server. For instance, would I put the actual business logic to query the persistence layer in a stateless session bean and then somehow reference the methods in that bean to compose the return message to go to the client?
    If anybody knows of or is willing to create a tutorial to achieve this goal on SJSAS and has a place to post it, that would probably be a great contribution to the information available online. If I am missing such a tutorial, I apologize and would be glad to have it pointed out to me. Any assistance with actually deploying soap for SJSAS would be tremendously helpful. There is a lot of why to use it, when to use it, what the spec is, and so on online. There is precious little how to use it and even less how to deploy it. Thank you for any help.
    Ryan

    the sun java system application server 8 and 9 comes with certutil and pk12util (http://www.mozilla.org/projects/security/pki/nss/tools/pk12util.html) programes. using them you can import them
    or check on google how to conver pk12 certs to NSS format.
    another option is to open the certificate in Internet explorer and save to cer format and then convert.

  • Problem extracting SOAP XML payload using pl/sql

    Hi,
    I was wondering if I could get some help on extracting the address matches that are returned from the Web Service I am consuming. This is the first time I have dealt with XML and web services. I'm using Oracle 10.2.0.1.
    The response I’m getting back returns 4 address matches (shown below against n2, n4, n6 and n8) which is:
    <?xml version="1.0" encoding="utf-8"?>
    <soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Header/><soapenv:Body><searchResponse
    xmlns="http://ws.aplt.msi.com"><searchReturn>&lt;?xml version=&quot;1.0&quot;
    encoding=&quot;UTF-8&quot; standalone=&quot;yes&quot;?&gt;
    &lt;GetAddressSearchResponse
    xmlns=&quot;http://aplt.nzpost.co.nz/schemas/search&quot;&gt;
    &lt;ns1:ResponseHeader
    xmlns:ns1=&quot;http://aplt.nzpost.co.nz/schemas/common&quot;&gt;
    &lt;ns1:Errors/&gt;
    &lt;/ns1:ResponseHeader&gt;
    &lt;SearchResults SearchType=&quot;StreetAddress&quot;&gt;
    &lt;ResultRecord Type=&quot;URBAN&quot;&gt;
    &lt;ns2:AddressDetails
    xmlns:ns2=&quot;urn:nzpost:schemas:xAL:3.0&quot;&gt;
    &lt;ns2:Locality&gt;
    &lt;ns2:Name&gt;LOWER HUTT&lt;/ns2:Name&gt;
    &lt;ns2:DependentLocality&gt;
    &lt;ns2:Name&gt;WAINUIOMATA&lt;/ns2:Name&gt;
    &lt;/ns2:DependentLocality&gt;
    &lt;/ns2:Locality&gt;
    &lt;ns2:Thoroughfare&gt;
    &lt;ns2:Name&gt;MAIN ROAD&lt;/ns2:Name&gt;
    &lt;ns2:Number&gt;
    &lt;ns2:Number Type=&quot;number&quot;&gt;111&lt;/ns2:Number&gt;
    &lt;/ns2:Number&gt;
    &lt;/ns2:Thoroughfare&gt;
    &lt;ns2:Postal&gt;
    &lt;ns2:PostalCode&gt;
    &lt;ns2:Number&gt;
    &lt;ns2:Number&gt;5014&lt;/ns2:Number&gt;
    &lt;/ns2:Number&gt;
    &lt;/ns2:PostalCode&gt;
    &lt;/ns2:Postal&gt;
    &lt;/ns2:AddressDetails&gt;
    &lt;DPID&gt;494852&lt;/DPID&gt;
    &lt;Geospatial&gt;
    &lt;ns3:Point
    xmlns:ns3=&quot;http://aplt.nzpost.co.nz/schemas/common&quot;&gt;
    &lt;ns3:Coordinate&gt;174.953883,-41.271187&lt;/ns3:Coordinate&gt;
    &lt;/ns3:Point&gt;
    &lt;/Geospatial&gt;
    &lt;/ResultRecord&gt;
    &lt;ResultRecord Type=&quot;URBAN&quot;&gt;
    &lt;ns4:AddressDetails
    xmlns:ns4=&quot;urn:nzpost:schemas:xAL:3.0&quot;&gt;
    &lt;ns4:Locality&gt;
    &lt;ns4:Name&gt;UPPER HUTT&lt;/ns4:Name&gt;
    &lt;/ns4:Locality&gt;
    &lt;ns4:Thoroughfare&gt;
    &lt;ns4:Name&gt;MAIN STREET&lt;/ns4:Name&gt;
    &lt;ns4:Number&gt;
    &lt;ns4:Number
    Type=&quot;number&quot;&gt;111&lt;/ns4:Number&gt;
    &lt;ns4:Number
    Type=&quot;alpha&quot;&gt;A&lt;/ns4:Number&gt;
    &lt;/ns4:Number&gt;
    &lt;/ns4:Thoroughfare&gt;
    &lt;ns4:Postal&gt;
    &lt;ns4:PostalCode&gt;
    &lt;ns4:Number&gt;
    &lt;ns4:Number&gt;5018&lt;/ns4:Number&gt;
    &lt;/ns4:Number&gt;
    &lt;/ns4:PostalCode&gt;
    &lt;/ns4:Postal&gt;
    &lt;/ns4:AddressDetails&gt;
    &lt;DPID&gt;2697192&lt;/DPID&gt;
    &lt;Geospatial&gt;
    &lt;ns5:Point
    xmlns:ns5=&quot;http://aplt.nzpost.co.nz/schemas/common&quot;&gt;
    &lt;ns5:Coordinate&gt;175.070066,-41.124317&lt;/ns5:Coordinate&gt;
    &lt;/ns5:Point&gt;
    &lt;/Geospatial&gt;
    &lt;/ResultRecord&gt;
    &lt;ResultRecord Type=&quot;URBAN&quot;&gt;
    &lt;ns6:AddressDetails
    xmlns:ns6=&quot;urn:nzpost:schemas:xAL:3.0&quot;&gt;
    &lt;ns6:Locality&gt;
    &lt;ns6:Name&gt;WELLINGTON&lt;/ns6:Name&gt;
    &lt;ns6:DependentLocality&gt;
    &lt;ns6:Name&gt;TAWA&lt;/ns6:Name&gt;
    &lt;/ns6:DependentLocality&gt;
    &lt;/ns6:Locality&gt;
    &lt;ns6:Thoroughfare&gt;
    &lt;ns6:Name&gt;MAIN ROAD&lt;/ns6:Name&gt;
    &lt;ns6:Number&gt;
    &lt;ns6:Number Type=&quot;number&quot;&gt;111&lt;/ns6:Number&gt;
    &lt;/ns6:Number&gt;
    &lt;/ns6:Thoroughfare&gt;
    &lt;ns6:Postal&gt;
    &lt;ns6:PostalCode&gt;
    &lt;ns6:Number&gt;
    &lt;ns6:Number&gt;5028&lt;/ns6:Number&gt;
    &lt;/ns6:Number&gt;
    &lt;/ns6:PostalCode&gt;
    &lt;/ns6:Postal&gt;
    &lt;/ns6:AddressDetails&gt;
    &lt;DPID&gt;1066466&lt;/DPID&gt;
    &lt;Geospatial&gt;
    &lt;ns7:Point
    xmlns:ns7=&quot;http://aplt.nzpost.co.nz/schemas/common&quot;&gt;
    &lt;ns7:Coordinate&gt;174.824326,-41.174181&lt;/ns7:Coordinate&gt;
    &lt;/ns7:Point&gt;
    &lt;/Geospatial&gt;
    &lt;/ResultRecord&gt;
    &lt;ResultRecord Type=&quot;URBAN&quot;&gt;
    &lt;ns8:AddressDetails
    xmlns:ns8=&quot;urn:nzpost:schemas:xAL:3.0&quot;&gt;
    &lt;ns8:Locality&gt;
    &lt;ns8:Name&gt;WELLINGTON&lt;/ns8:Name&gt;
    &lt;ns8:DependentLocality&gt;
    &lt;ns8:Name&gt;KARORI&lt;/ns8:Name&gt;
    &lt;/ns8:DependentLocality&gt;
    &lt;/ns8:Locality&gt;
    &lt;ns8:Thoroughfare&gt;
    &lt;ns8:Name&gt;MAKARA ROAD&lt;/ns8:Name&gt;
    &lt;ns8:Number&gt;
    &lt;ns8:Number Type=&quot;number&quot;&gt;111&lt;/ns8:Number&gt;
    &lt;/ns8:Number&gt;
    &lt;/ns8:Thoroughfare&gt;
    &lt;ns8:Postal&gt;
    &lt;ns8:PostalCode&gt;
    &lt;ns8:Number&gt;
    &lt;ns8:Number&gt;6012&lt;/ns8:Number&gt;
    &lt;/ns8:Number&gt;
    &lt;/ns8:PostalCode&gt;
    &lt;/ns8:Postal&gt;
    &lt;/ns8:AddressDetails&gt;
    &lt;Geospatial&gt;
    &lt;ns9:Point
    xmlns:ns9=&quot;http://aplt.nzpost.co.nz/schemas/common&quot;&gt;
    &lt;ns9:Coordinate&gt;174.717753 , -41.284415&lt;/ns9:Coordinate&gt;
    &lt;/ns9:Point&gt;
    &lt;/Geospatial&gt;
    &lt;/ResultRecord&gt;
    &lt;/SearchResults&gt;
    &lt;/GetAddressSearchResponse&gt;
    </searchReturn></searchResponse></soapenv:
    Body></soapenv:Envelope>
    My cursor that gets any errors returned appears ok. This is:
    CURSOR c_xml_err(i_xml IN XMLType, i_xmlns IN VARCHAR2) IS
    SELECT extract(value(xmlseq), '/Errors' , i_xmlns) vi_errors
    ,extract(value(xmlseq), '/Warnings' , i_xmlns) vi_warnings
    FROM TABLE(xmlSequence(extract(i_xml, '/GetAddressSearchResponse/ns1:ResponseHeader' , i_xmlns))) xmlseq;
    i_xml that is passed in is an XMLType converted from a CLOB which is the response from the web service:
    v_xml_response := XMLType(i_response);
    i_response is the SOAP package above with the following done on it:
    -- Strip the unnecessary SOAP XML envelope from the response
    v_xml_resp := XMLType.createXml(o_response);
    i_response := v_xml_resp.extract('/soap:Envelope/soap:Body/child::node()'
    ,'xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"').getClobVal();
    i_response is defined with a type of CLOB.
    i_xmlns that is passed in is: 'xmlns:ns1="' || i_xml_namespace || '"' where i_xml_namespace is: http://aplt.nzpost.co.nz/schemas/search
    My cursor that tries to get the address details returned is:
    CURSOR c_xml(i_xml IN XMLType, i_xmlns IN VARCHAR2) IS
    SELECT extract(value(xmlseq), '/ResultRecord/AddressDetails/Postal.PostBox.Number/text()' , i_xmlns).getNumberVal() box#
    ,extract(value(xmlseq), '/ResultRecord/AddressDetails/Thoroughfare.Number/text()' , i_xmlns).getStringVal() street_number
    ,extract(value(xmlseq), '/ResultRecord/AddressDetails/Thoroughfare.Name/text()' , i_xmlns).getStringVal() street_name
    ,extract(value(xmlseq), '/ResultRecord/AddressDetails/Locality.DependentLocality.Name/text()' , i_xmlns).getStringVal() suburb
    ,extract(value(xmlseq), '/ResultRecord/AddressDetails/Locality.Name/text()' , i_xmlns).getStringVal() town_city
    ,extract(value(xmlseq), '/ResultRecord/AddressDetails/Postal.PostalCode.Number/text()' , i_xmlns).getStringVal() post_code
    ,extract(value(xmlseq), '/ResultRecord/AddressDetails/Postal.PostOffice.Name/text()' , i_xmlns).getStringVal() box_lobby_name
    ,extract(value(xmlseq), '/ResultRecord/AddressDetails/Postal.PostRoute.Name/text()' , i_xmlns).getStringVal() rd_number
    FROM TABLE(xmlSequence(extract(i_xml, '/GetAddressSearchResponse/SearchResults' , i_xmlns))) xmlseq;
    This is not correct because it doesn’t select anything. The i_xml parameter passed in is the same as above however the i_xmlns parameter that is passed into this cursor is different. It’s currently passed in as:
    'xmlns:ns2="urn:nzpost:schemas:xAL:3.0"'
    Which matches what is returned in the soap message (first the first address match returned):
    &lt;ResultRecord Type=&quot;URBAN&quot;&gt;
    &lt;ns2:AddressDetails
    xmlns:ns2=&quot;urn:nzpost:schemas:xAL:3.0&quot;&gt;
    I'm calling this cursor in loop as follows:
    for r_cu in c_xml(v_xml_response, v_xml_namespace)
    loop
    dbms_output.put_line('***** test12 - ws_avs_clients - IN LOOP - delete/insert nzp23_address');
    Nothing gets returned.
    Firstly, I’m not sure how to cater for n2, n3, n4, n5, etc which are the namespaces returned and incremented for each address match.
    I’m also wondering if my cursor should be changed to something like:
    CURSOR c_xml(i_xml IN XMLType, i_xmlns IN VARCHAR2) IS
    SELECT extract(value(xmlseq), '/Postal.PostBox.Number/text()' , i_xmlns).getNumberVal() box#
    ,extract(value(xmlseq), '/Thoroughfare.Number/text()' , i_xmlns).getStringVal() street_number
    ,extract(value(xmlseq), '/Thoroughfare.Name/text()' , i_xmlns).getStringVal() street_name
    ,extract(value(xmlseq), '/Locality.DependentLocality.Name/text()' , i_xmlns).getStringVal() suburb
    ,extract(value(xmlseq), '/Locality.Name/text()' , i_xmlns).getStringVal() town_city
    ,extract(value(xmlseq), '/Postal.PostalCode.Number/text()' , i_xmlns).getStringVal() post_code
    ,extract(value(xmlseq), '/Postal.PostOffice.Name/text()' , i_xmlns).getStringVal() box_lobby_name
    ,extract(value(xmlseq), '/Postal.PostRoute.Name/text()' , i_xmlns).getStringVal() rd_number
    FROM TABLE(xmlSequence(extract(i_xml, '/GetAddressSearchResponse/SearchResults/ResultRecord/ns2:AddressDetails' , i_xmlns))) xmlseq;
    However I couldn’t have the ns2: before “AddressDetails” because this gets incremented. I don’t think I can also have the i_xmlns namespace parameter passed in as 'xmlns:ns2="urn:nzpost:schemas:xAL:3.0"'
    because the ns2 gets incremented for each address.
    I'm looking for any examples of pl/sql code that extracts the addresses from the SOAP message returned like I’m trying to do?
    Any help would be much appreciated.
    Thanks,
    Brad

    You can find some examples in both the {forum:id=34} and {forum:id=75} forums. Just search on soap:Envelope or soap:Body and you should get some hits back.
    Since you are using 10.2, you will want to use XMLTable instead of TABLE(xmlSequence(extract as XMLTable is the direction Oracle is going. As for ns2:, ns4: it doesn't matter what namespace prefix you use in your XPath statement as long as all the prefixes resolve to the same namespace.
    Here is a starter piece of code that puts all that together for you.
    SELECT town_city, peeking
      FROM XMLTABLE(XMLNamespaces(default 'http://aplt.nzpost.co.nz/schemas/search',
                                  'urn:nzpost:schemas:xAL:3.0' as "adns"),
                    '/GetAddressSearchResponse/SearchResults/ResultRecord/adns:AddressDetails'
                    PASSING XMLTYPE('<GetAddressSearchResponse xmlns="http://aplt.nzpost.co.nz/schemas/search">
       <SearchResults SearchType="StreetAddress">
          <ResultRecord Type="URBAN">
             <ns2:AddressDetails xmlns:ns2="urn:nzpost:schemas:xAL:3.0">
                <ns2:Locality>
                   <ns2:Name>LOWER HUTT</ns2:Name>
                </ns2:Locality>
             </ns2:AddressDetails>
              </ResultRecord>
              <ResultRecord Type="URBAN">
                   <ns4:AddressDetails xmlns:ns4="urn:nzpost:schemas:xAL:3.0">
                        <ns4:Locality>
                             <ns4:Name>UPPER HUTT</ns4:Name>
                        </ns4:Locality>
                   </ns4:AddressDetails>
              </ResultRecord>
         </SearchResults>
    </GetAddressSearchResponse>')
                    -- The above XMLType would be your variable instead of what is hard-coded
                    COLUMNS
                    town_city   VARCHAR2(30)  PATH '/adns:AddressDetails/adns:Locality/adns:Name',
                    peeking     XMLTYPE       PATH '.');  -- This var is just to show you what each iteration is working with.You can also assign a namespace prefix to one of the default namespaces if your XPath goes across multiple "default" namespaces.
    SELECT town_city, peeking
      FROM XMLTABLE(XMLNamespaces('http://aplt.nzpost.co.nz/schemas/search' as "def",  -- made up this prefix
                                  'urn:nzpost:schemas:xAL:3.0' as "adns"),
                    '/def:GetAddressSearchResponse/def:SearchResults/def:ResultRecord/adns:AddressDetails'
                    PASSING XMLTYPE('<GetAddressSearchResponse xmlns="http://aplt.nzpost.co.nz/schemas/search">
       <SearchResults SearchType="StreetAddress">
          <ResultRecord Type="URBAN">
             <ns2:AddressDetails xmlns:ns2="urn:nzpost:schemas:xAL:3.0">
                <ns2:Locality>
                   <ns2:Name>LOWER HUTT</ns2:Name>
                </ns2:Locality>
             </ns2:AddressDetails>
              </ResultRecord>
              <ResultRecord Type="URBAN">
                   <ns4:AddressDetails xmlns:ns4="urn:nzpost:schemas:xAL:3.0">
                        <ns4:Locality>
                             <ns4:Name>UPPER HUTT</ns4:Name>
                        </ns4:Locality>
                   </ns4:AddressDetails>
              </ResultRecord>
         </SearchResults>
    </GetAddressSearchResponse>')
                    -- The above XMLType would be your variable instead of what is hard-coded
                    COLUMNS
                    town_city   VARCHAR2(30)  PATH '/adns:AddressDetails/adns:Locality/adns:Name',
                    peeking     XMLTYPE       PATH '.');  -- This var is just to show you what each iteration is working with.Hope that helps as a starter to working on your problem.
    If you follow the FAQ link in the above right, you will see how to use the { code } tag (without spaces) to wrap the examples and retain formatting as shown above.

  • Invoke web service to return binary file (image) using soap

    Dear all,
    Please I a problem when invoking a web service throgh soap protocol,
    this we service has two operations, the first one takes student id and return doctype of it's documents id's,
    the another operation takes the document id and return it's image ( this is like archiving system)
    NOTE:
    I use soap package from this link:
    [http://www.oracle-base.com/dba/miscellaneous/soap_api.sql|http://www.oracle-base.com/dba/miscellaneous/soap_api.sql]
    Also I tried to invoke the following web service but failed:
    [http://www.webservicex.net/WS/WSDetails.aspx?CATID=12&WSID=56]
    CREATE OR REPLACE PACKAGE BODY pkg_my_webservice IS
    vg_funciton_fnc VARCHAR2(256):='GetCitiesByCountry';
    vg_ws_address VARCHAR2(255):='http://www.webservicex.net/globalweather.asmx';
    FUNCTION call_myfunction(vp_parameter1 VARCHAR2,vp_parameter2 VARCHAR2)
    RETURN VARCHAR2 AS
    ol_req soap_api.t_request;
    ol_resp soap_api.t_response;
    BEGIN
    ol_req:=soap_api.new_request(vg_funciton_fnc,'xmlns="'||vg_ws_address||'"');
    soap_api.add_parameter(ol_req,'string1','partns:string',vp_parameter1);
    soap_api.add_parameter(ol_req,'string2','partns:string',vp_parameter1);
    ol_resp:=soap_api.invoke(ol_req,vg_ws_address,vg_funciton_fnc);
    RETURN soap_api.get_return_value(ol_resp,'result','xmlns:m="'||vg_ws_address||'"');
    END call_myfunction;
    END pkg_my_webservice;
    Please can any one tell me how to invoke this web service to achive this ?
    Thanks in advance

    I don't see a version number.
    I don't see any indication as to where the code you posted originated.
    I don't see any indication of whether it works or does not work (for example an error message).
    If you have questions about web services ask them in the correct forum.
    If you want someone to teach you how to use them all I can tell you is that the developers where I work use lots of SOAP and not one has written a procedure similar to what you posted.

  • What is needed on non-weblogic client to make soap request

    Hi, I am trying to make a soap request from a client that is not weblogic to a
    weblogic6.1 server. I was under the impression that all I needed was the client.jar
    created by wsgen. But when I try to access the service through the client I get
    the below exception. It appears to be trying to access a weblogic class that is
    not contained in the client.jar. Does this mean I also need to include the weblogic.jar
    on the client(I'm hoping not to). Thanks
    java.lang.NoClassDefFoundError: weblogic/net/http/HttpsURLConnection
         at weblogic.soap.http.SoapContext.lookup(SoapContext.java:87)
         at javax.naming.InitialContext.lookup(InitialContext.java:350)
         at index_1._jspService(index_1.java:68)
         at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:119)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java)
         at org.apache.tomcat.facade.ServletHandler.doService(ServletHandler.java:574)
         at org.apache.tomcat.core.Handler.invoke(Handler.java:322)
         at org.apache.tomcat.core.Handler.service(Handler.java:235)
         at org.apache.tomcat.facade.ServletHandler.service(ServletHandler.java:485)
         at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:917)
         at org.apache.tomcat.core.ContextManager.service(ContextManager.java:833)
         at org.apache.tomcat.modules.server.Http10Interceptor.processConnection(Http10Interceptor.java:176)
         at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:494)
         at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:516)
         at java.lang.Thread.run(Thread.java:484)

    Hi Jane,
    Looks like you have run smack dab into one of the first "myths" about web services
    - "SOAP client software is not vendor- dependent" :-) This is in fact, exactly
    the opposite! And it's not just WebLogic's SOAP client API that has this "vendor-dependent"
    code. Apache SOAP, Apache AXIS, Systinet WASP, GLUE, etc. exhibit the same behavior.
    The difference is that WebLogic's client.jar, is not really a "standalone, SOAP
    client package". It's a "web service-specific" client package.
    JAX-RPC (and the other APIs in the Java Web Services Developer's Pack) is attempting
    to reduce a fair amount of this "vendor-dependency", but there will always be
    some :-) WLS 6.1 doesn't use JAX-RPC, so...
    Anyway, how many "vendor classes" you need, depends on what you are attempting
    to do in the client. If you are just consuming a web service that uses "SOAP encoding",
    then you'll need less. If you are consuming a web service that uses "literal encoding",
    you'll need more. An easy (albeit time consuming) way to figure out which classes
    you need from the weblogic.jar file, to use WebLogic's Web Service client package
    inside Tomcat, is to use the "-verbose:class" option, on the Java command used
    to start Tomcat. This will produce a lot of output, so I suggest you capture it
    to a log, instead of sending it to stdout :-) But, as I said, this is a very,
    very, very time consuming way to determine all the classes you need from the weblogic.jar
    file. Trust me, I've done this before and it took me about 3 hours to find every
    class that's needed! It's simpler just to include the weblogic.jar file in the
    CLASSPATH you start Tomcat with :-)
    Another option is to just use the Apache SOAP package to create the web service
    client. This works wonderfully, if you don't want to use WSDL (Apache SOAP doesn't
    support WSDL). If you want to use WSDL, go with the Apache AXIS package. It has
    an implementation of JAX-RPC, and is pretty close to the Web Services implementation
    in WLS 7.0 (which I'm assuming you'll eventually upgrade to anyway, right?).
    Regards,
    Mike Wooten
    "Jane" <[email protected]> wrote:
    >
    Hi, I am trying to make a soap request from a client that is not weblogic
    to a
    weblogic6.1 server. I was under the impression that all I needed was
    the client.jar
    created by wsgen. But when I try to access the service through the client
    I get
    the below exception. It appears to be trying to access a weblogic class
    that is
    not contained in the client.jar. Does this mean I also need to include
    the weblogic.jar
    on the client(I'm hoping not to). Thanks
    java.lang.NoClassDefFoundError: weblogic/net/http/HttpsURLConnection
         at weblogic.soap.http.SoapContext.lookup(SoapContext.java:87)
         at javax.naming.InitialContext.lookup(InitialContext.java:350)
         at index_1._jspService(index_1.java:68)
         at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:119)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java)
         at org.apache.tomcat.facade.ServletHandler.doService(ServletHandler.java:574)
         at org.apache.tomcat.core.Handler.invoke(Handler.java:322)
         at org.apache.tomcat.core.Handler.service(Handler.java:235)
         at org.apache.tomcat.facade.ServletHandler.service(ServletHandler.java:485)
         at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:917)
         at org.apache.tomcat.core.ContextManager.service(ContextManager.java:833)
         at org.apache.tomcat.modules.server.Http10Interceptor.processConnection(Http10Interceptor.java:176)
         at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:494)
         at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:516)
         at java.lang.Thread.run(Thread.java:484)

  • (266436851) Q: WWSD-7 Can web service be in packages other than .ear files?

    Q:<WWSD-7> Could we deploy the SOAP package not using the ear, instead could we
    put all the related Java code to jar file and the rest of the code to the war
    files? The reason I asked is because we do not deploy our applciation in ear format.
    A:<WWSD-7> EAR files are general packaging structures that can contain war, EJB
    jar, rar and regular jar files. The wsgen task provided expects an output file
    to be an ear file. If you are going to utilize another format you will be resonpsible
    for building the appropriate web application components. It can be done but you
    will have to do more work and not use the provided wsgen task. As far as web services
    in general are concerned, the actual business processing can be done by any component
    just as long as there is a servlet that understands the SOAP requests and responses.
    It is BEA expectation that EJBs are supposed to be you core business components
    so these will be the operations most likely to be exposed as web srevices.

    Hello Erik,
    I was looking into the thread , it seems you have found out the solution .
    Could you look into this thread and provide some insight for the same ? I am currently facing the problem as mentioned in the link below.
    CAF-EJB
    Regards,
    Ronniee

  • Soap message to string

    hello everybody,
    i need to create an envelope to request some info via soap. i need to have this envelope as a string, beacuase the service i'll receives it as a string.
    i was checking some of the xml java libraries but the need to get the soap xml from a connection, but i need it to be created from zero. beginning with <soap:Envelope... till i reach the end at </soap:Envelope>
    anyway this string will have the same xml-soap envelope structure in a string. so i guess i could make this some how through some of the parsers or using another structure from the javax.xml.soap package.
    any suggestions are mostly welcome. thanks in advance,
    ip

    The answer is dom4j

  • Jax-rpc and soap

    I have implemented a web service using jax-rpc and soap however i am unsure how to go about validating my soap package with my own schema before using the web service. How do i use my own schema to validate this, i think it may be with the wsdl file but i am not sure. At present the wsdl file points to a non existing .xsd file which the soap envelope uses, what i need i to replace this with my own schema, or is there a better way to do this than using jax-rpc and soap?
    cheers
    Andy

    I am in the same situation as you are. Got any solution? please let me know.
    Appreciate your valuable reply

  • Problem: Applets cannot Create SOAP Message Objects using JAX Pack

    Hi all
    I want to invoke a simple webservice located at a url.
    I wish to send a SOAP Message . The Message is creating using
    javax.xml.soap package
    Here is the code
    public void init(){
    try{
    MessageFactory MF = MessageFactory.newInstance();
    SOAPMessage message = MF.createMessage();
    SOAPPart SP = message.getSOAPPart();
    SOAPEnvelope SE = SP.getEnvelope();
    SOAPHeader SH = SE.getHeader();
    SOAPBody SB = SE.getBody();
    Name bodyName = SE.createName
    ("testString","L","http://tempuri.org/");
    SOAPBodyElement SBE = SB.addBodyElement(bodyName);
    }catch(Exception e){}
    When I run the applet in a browser I am getting ExceptionInInitializerError or NullPointer Exception.
    The same application works when i run as a standalone application. But not in APPLET.
    Can somebody help me in this regard

    Im trying to do the same thing !!, i have a servlet that processes SOAP messages, and return SOAP messages back.
    Like you i have a implementation running with a stand alone client instead of an applet, which runs fine (there are several .jar files that have to be included in the jre/lib/ext directory, in total about a meg!).
    Im now looking to incorporate this client into an applet, but it moans about cannot find classes (the JAXM and SOAP classes).
    Have you found a solution to this yet ?? Surely you cannot expect the user to download all the required jar files along with the applet??
    With regards to your problem try setting up a button that fires off the SOAP Msg and processes the response, i read on the Sun Java Applet tutorials that some code should stay out of the init method(its a bit vague about WHAT should stay out..), maybe this is an example.
    Thanks,
    (i dont really expect a response as you posted this ages ago !!, but it would be nice.)

  • XMLServer problem with Strings. SOAP implementation

    hi,
    I've tried to export a Service Objet with XMLServer.
    The SO consists of a method that will be called by a JAVA client :
    execute (String param) : String
    There is no problem when this method returns a String with no special caracters. But when it contains some 'e', for example, the Java client is no more able to get the response.
    The error deals with the SOAP envelop of the response,
    the Java client crashes :
    SOAP Fault; code=SOAP-ENV:Server string=XMLSvr.ProtocolSOAP.getResponseText: Internal Error - no response envelope
    I use UDS 5.0 on NT
    The Java client uses Apache.SOAP packages
    Is this a problem of compatibility between the two SOAP implementations ??
    Please help me ...
    matt

    Hi Matt,
    UDS 5.0.1 is able to generate a SOAP Server and Java Proxies (Java clients) but there are some limitations in the current implementation (Does not have support for array of string for example...). I would suggest you to check http://knowledgebase.iplanet.com/ikb/kb/articles/7655.html for further info abou those limitations (by the way, all the questions and answers except one, are from an email I sent to the Iplanet guys last year... :-)

  • JAX-RPX vs. SOAP

    Hi @all,
    I'm working on webservices at the moment and actually reading some stuff about that topic. After reading some articles and papers, I have a question concerning JAX-RPC and SOAP. Is it right, that JAX-RPC doesn't use SOAP, and if it's right, what about the SOAP-packages, which should be used by every webservice???
    Hope there is anybody out there, who can help me going on...
    Regards
    Markus

    Hi Markus,
    JAX-RPC uses SOAP 1.1 as the XML-based protocol to transfer messages between client and server.
    Let me know if you have any specific questions.
    Regards,
    -Arun

  • 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

  • Passing XML as a part of SOAP body

    Hi,
    I have to develop a web service which accepts an xml and returns an xml.
    I do not want to pass an xml file as a string. nor do I want to pass it as an attachment.
    Can anybody please guide me as to how I go about?
    I tried using javax.xml.transform.dom.DOMSource object But NetBeans cribs that since DOMSource is inherited from Soure which in turn inherits Node which is an interface which cannot be instantiated, it is unable to create the JAXBContext.
    Can somebody please help.
    Thanks is advance.
    myMethod(javax.xml.transform.dom.DOMSource soapSource)

    Hi Himanshu,
    You should use [SOAPMessage API|http://java.sun.com/javaee/5/docs/api/javax/xml/soap/package-summary.html] for this. It provides the API for creating and building SOAP messages. This package is defined in the SOAP with Attachments API for Java (SAAJ) 1.3 specification. This API is quite simple to use.
    Hope this will help.
    Thanks,
    Tejas

Maybe you are looking for

  • WRT110 WIFI password problem

    Hi Everyone, I've got a very strange problem.  First, I indicated WPA under Wireless Security section and typed in my passphrase.  However when connecting to my wireless network name my passphrase never worked.  Second, I completely disabled security

  • Outstanding BP Opening Balances

    Hi All, What is the way to post the Outstanding OB. My problem is: we start the project go-live from jan 1st. So it is the middle of the financial year. And OB sheet conatins the open payments amounts. i am taking the OB of items, BPs and Account as

  • Duplicate Column Name: VIEW

    Hi. Im writing a VIEW: CREATE OR REPLACE VIEW viewexample AS SELECT c.customer_id, c.details, o.order_id, o.details, op.product_id, op.description FROM customer c, order o, order_product op (...more... ) Yet, i get this message: duplicate column name

  • How do I upload a digital voice recording to iTunes 10?

    I have a new Olympus VN8100 digital voice recorder that I used the other day to record a meeting.  The instructions tell you how to hook it up to a Mac and how to dismount it, but not what to do in between to upload the recording to a computer.  I di

  • Need to have the mail trigger to manager whenever bank details are changed

    Dear Experts, We got a  requirement on  changing the Infotype .Whenever the employees Bank details  Infotype are changed,a mail has to be triggered to the HR Manager. What should we do for this requirement. Please advice. Thanks and Regards, Sairam.