Consuming a web service in Oracle9i with JAX-RPC calling

Hello,
i need to generate web service client in oracle9i db using jpublisher. And i found in this tutorial http://www.oracle.com/technology/sample_code/tech/java/jsp/callout_users_guide.htm that Oracle 9i is not supporting JAX-RPC web services calling, because of JDK 1.3.
Is there any possibility to consume a web service using JAX-RPC instead of Oracle SOAP in Oracle 9.2 database ?

I use utl_http pl/sql supplied package for this need - http://akdora.wordpress.com/2007/08/03/calling-a-web-service-by-plsql-utl_http/
But I believe you may find more information with these resource -
http://www.oracle.com/technology/sample_code/tech/java/web_services/index.html
http://forums.oracle.com/forums/forum.jspa?forumID=97
http://forums.oracle.com/forums/forum.jspa?forumID=99
http://www.oracle.com/technology/sample_code/tech/java/jsp/dbwebservices.html
Best regards.

Similar Messages

  • Consuming a Web Service via SSL with Basic Authentication

    Hello,
    I have a simple web service (returns a parameter value) and want to consume it. Therefore I have generated a proxy for its in Netweaver Studio SP13.
    When I set up the web service to be accessed via HTTP and Basic Authentication (Username/Password), everything is fine. When I set up the web service to communicate via HTTPS, I get the following error message in my client:
    java.rmi.RemoteException: Service call exception; nested exception is:
         java.lang.NullPointerException
         at priv.senw04.wsproxy.multisec_ssl.SSLBindingStub.pingText(SSLBindingStub.java:87)
         at priv.senw04.wsproxy.multisec_ssl.SSLBindingStub.pingText(SSLBindingStub.java:96)
         at priv.se.wsclient.MultiSecSSL.main(MultiSecSSL.java:38)
    Caused by: java.lang.NullPointerException
         at com.sap.engine.services.webservices.jaxm.soap.HTTPSocket.disconnect(HTTPSocket.java:625)
         at com.sap.engine.services.webservices.jaxrpc.wsdl2java.soapbinding.HTTPTransport.closeSession(HTTPTransport.java:396)
         at com.sap.engine.services.webservices.jaxrpc.wsdl2java.soapbinding.MimeHttpBinding.call(MimeHttpBinding.java:1312)
         at priv.senw04.wsproxy.multisec_ssl.SSLBindingStub.pingText(SSLBindingStub.java:80)
         ... 2 more
    Testing the web service with WebServiceNavigator and/or by using a generated WebDynpro Client results in the following error:
    000D604C66BE004E0000001300000AFC00040922E0160632 : An error occurred during processing the timestamp. The error was: com.sap.security.core.ws.wss.NoSecurityHeaderException No wsse:Security header has been defined for role soap:finalActor. Please verify the policy configuration..
    But my main focus is on the client implementation based on a proxy. Here comes the client's code:
    public class MultiSecSSL {
        public static void main(String[] args) {
            try {
                MultiSecuritySSLAuthImpl serviceInterface = new MultiSecuritySSLAuthImpl();
                SSLBindingStub service = (SSLBindingStub)serviceInterface.getLogicalPort(MultiSecuritySSLAuthViDocument.class);
                SecurityProtocol protocol = (SecurityProtocol) service._getGlobalProtocols().getProtocol("SecurityProtocol");
                AuthenticationContext auth = protocol.getAuthenticationContext();
                auth.setIgnoreSSLServerCertificate(true);
                auth.setUsername("cfpcompany");
                auth.setPassword("demo");
                String ret = service.pingText("Called service MultiSecurity via SSL");
                System.out.println(ret);
            } catch (Exception e) {
                 e.printStackTrace(System.out);
    Here comes the logical port information of the generated proxy:
    <?xml version="1.0" encoding="UTF-8"?>
    <LogicalPorts Name='MultiSecuritySSLAuth' InterfaceName='priv.senw04.wsproxy.multisec_ssl.MultiSecuritySSLAuth'>
      <LogicalPort Name='SSLPort_Document' Endpoint='https://192.168.129.76:50001/MultiSecuritySSLAuth/SSL?style=document' BindingName='SSLBinding' BindingUri='urn:MultiSecuritySSLAuthWsd/SSL/document' BindingImplementation='SOAP 1.1 HTTP Binding with Attachments' StubName='priv.senw04.wsproxy.multisec_ssl.SSLBindingStub' Default='true' InterfaceName='priv.senw04.wsproxy.multisec_ssl.MultiSecuritySSLAuthViDocument' Original='true' Valid='true'>
        <globalFeatures>
          <Feature Name='http://www.sap.com/webas/630/soap/features/headers/' Provider='SoapHeadersProtocol' Original='false'>
          </Feature>
          <Feature Name='http://www.sap.com/webas/630/soap/features/session/' Provider='SessionProtocol' Original='false'>
            <Property Name='SessionMethod' Value='httpCookies'>
            </Property>
          </Feature>
          <Feature Name='http://www.sap.com/webas/630/soap/features/authentication' Provider='SecurityProtocol' Original='true'>
            <Property Name='AuthenticationLevel' Value='None'>
            </Property>
            <Property Name='AuthenticationMechanism' Value='HTTP'>
            </Property>
            <Property Name='AuthenticationMethod' Value='BasicAuth'>
            </Property>
            <Property Name='SupportsSSO2Authentication' Value='false'>
            </Property>
          </Feature>
          <Feature Name='http://www.sap.com/webas/630/soap/features/transportguarantee' Original='true'>
            <Property Name='Level' Value='No'>
            </Property>
            <Property Name='TLSType' Value='SSL'>
            </Property>
          </Feature>
        </globalFeatures>
        <localFeatures>
          <Operation Name='pingText'>
            <Feature Name='http://www.sap.com/webas/630/soap/features/wss' Original='true'>
              <Property Name='RequestPolicy' Value='Signature'>
              </Property>
              <Property Name='ResponsePolicy' Value='None'>
              </Property>
            </Feature>
            <Feature Name='http://sap.com/webservices/authorization' Original='true'>
            </Feature>
          </Operation>
        </localFeatures>
      </LogicalPort>
    </LogicalPorts>
    To me, this looks consistent. Any idea, what is misconfigured on my machine ?

    Hi Martin,
    that is exactly, what I did.
    - Change Web Service Configuration in IDE
    - Build and Deploy the Service to my local Server
    - Check Service in Visual Administrator
    - Deleted and Regenerated the Standalone Proxy
    - Deleted and Recreated the link between CLient and Proxy Project in IDE
    - Started Client
    Here comes the section of the ws-deployment-descriptor.xml of the service. For me, it matches, what the proxy generated.
      <webservice>
        <guid>ed8363_10876a54b6d__7fe9_192_168_129_76_1135862193037</guid>
        <ejb-name-temp>MultiSecWSBean</ejb-name-temp>
        <webservice-name>
          <namespaceURI>urn:MultiSecuritySSLAuthWsd</namespaceURI>
          <localName>MultiSecuritySSLAuth</localName>
        </webservice-name>
        <webservice-internal-name>MultiSecuritySSLAuth</webservice-internal-name>
        <standard-namespaceURI>urn:MultiSecuritySSLAuthWsd</standard-namespaceURI>
        <ws-configuration>
          <configuration-name>SSL</configuration-name>
          <ejb-name>MultiSecWSBean</ejb-name>
          <service-endpoint-name>
            <namespaceURI>urn:MultiSecuritySSLAuthWsd</namespaceURI>
            <localName>SSLPort</localName>
          </service-endpoint-name>
          <wsdl-porttype-name>
            <namespaceURI>urn:MultiSecuritySSLAuthWsd</namespaceURI>
            <localName>MultiSecuritySSLAuthVi</localName>
          </wsdl-porttype-name>
          <webservice-definition-ref>
            <package>com.technidata.cfp.i3rdparty.cfpxml</package>
            <name>MultiSecuritySSLAuthWsd.wsdef</name>
          </webservice-definition-ref>
          <service-endpoint-vi-ref>
            <package>com.technidata.cfp.i3rdparty.cfpxml</package>
            <name>MultiSecuritySSLAuthVi.videf</name>
          </service-endpoint-vi-ref>
          <transport-binding name="SOAPHTTP_TransportBinding">
            <wsdl-binding-name>
              <namespaceURI>urn:MultiSecuritySSLAuthWsd</namespaceURI>
              <localName>SSLBinding</localName>
            </wsdl-binding-name>
          </transport-binding>
          <transport-address>/MultiSecuritySSLAuth/SSL</transport-address>
          <global-features>
            <feature name="http://www.sap.com/webas/630/soap/features/transportguarantee" protocol="SecurityProtocol">
              <property name="TLSType" value="SSL"/>
            </feature>
            <feature name="http://www.sap.com/webas/630/soap/features/authorization" protocol="SecurityProtocol"/>
            <feature name="http://www.sap.com/webas/630/soap/features/authentication" protocol="SecurityProtocol">
              <property name="AuthenticationMethod" value="BasicAuth"/>
              <property name="AuthenticationMechanism" value="HTTP"/>
              <property name="SupportsSSO2Authentication" value="false"/>
            </feature>
          </global-features>
          <operation-configuration uniqueViName="pingText(java.lang.String)">
            <transport-binding-configuration>
              <input>
                <property name="soapAction" value=""/>
                <property name="encodingStyle" value="http://schemas.xmlsoap.org/soap/encoding/"/>
              </input>
              <output>
                <property name="encodingStyle" value="http://schemas.xmlsoap.org/soap/encoding/"/>
              </output>
            </transport-binding-configuration>
            <feature name="http://www.sap.com/webas/630/soap/features/wss" protocol="SecurityProtocol">
              <property name="RequestPolicy" value="None"/>
              <property name="ResponsePolicy" value="None"/>
            </feature>
            <feature name="http://sap.com/webservices/authorization" protocol="SecurityProtocol">
              <property name="security-roles">
                <property name="role1" value="use_multisec_service"/>
              </property>
            </feature>
          </operation-configuration>
        </ws-configuration>
      </webservice>
    Regards,
    Stefan

  • Consuming a Web service thru XI with Web Dynpro for ABAP

    Hi all,
    Does anyone know how to call a web service thru XI from Web Dynpro ABAP. The web service will call an RFC and bring back some data.
    Some guidelines on how to achieve this will be very much appreciated.
    Thanks
    KG.

    Hi Kunal,
    Do you want to use XI at the runtime of the service ? Usually for a synchronous call, XI is used only at the design time to design the message interface. Using this message interface the proxy class  in ur ABAP system can be generated. In the interface method of your proxy class you can call your RFC. Finally generate a webservice out of this proxy class via SPROXY tsn.
    Get the WSDL url of this webservice in tsn WSADMIN . Using this url you can call the service (peer-to-peer, no XI involved at runtime) with Webdynpro.
    I hope this answers your question.
    Regards,Girish

  • Creating a Simple Web Service and Client with JAX-WS

    I downloaded javaeetutorial5 tutorial from this URL.
    https://sdlc1a.sun.com/ECom/EComActionServlet;jsessionid=5874F5CFDFC12A3F5217CEA1ED76E76C
    And followed the steps to create the web service as mentioned here.
    http://java.sun.com/javaee/5/docs/tutorial/doc/JAXWS3.html#wp79980
    But I couldn't make it to run using my netbeans IDE 5.5.
    Its giving a deployment error.
    init:
    deps-module-jar:
    deps-ear-jar:
    deps-jar:
    library-inclusion-in-archive:
    library-inclusion-in-manifest:
    compile:
    compile-jsps:
    do-dist:
    dist:
    In-place deployment at D:\NetBeans\javaeetutorial5\examples\jaxws\helloservice\build\web
    Start registering the project's server resources
    Finished registering server resources
    moduleID=helloservice
    deployment started : 0%
    Deploying application in domain failed; com.sun.tools.apt.Main.process(Lcom/sun/mirror/apt/AnnotationProcessorFactory;[Ljava/lang/String;)I
    D:\NetBeans\javaeetutorial5\examples\jaxws\helloservice\nbproject\build-impl.xml:440: Deployment error:
    The module has not been deployed.
    See the server log for details.
    BUILD FAILED (total time: 3 seconds)Is it a bug in netbeans 5.5 because i made this as it mentioned in the tutorial.

    I am getting the same error as describes in this thread.
    http://forum.java.sun.com/thread.jspa?threadID=715624&messageID=4152590
    How can i solve this error.
    Message was edited by:
    Ajaxrand

  • Help with consuming a web service

    Hi guys,
    I'm trying to consume a web service but I have the following problem when I consume it:
    javax.xml.rpc.soap.SOAPFaultException: Internal Error
    at com.sun.xml.rpc.client.StreamingSender._raiseFault(StreamingSender.ja
    va:491)
    at com.sun.xml.rpc.client.StreamingSender._send(StreamingSender.java:307
    at qtel.tibco.transferAsset.AssetPort_Stub.transferAsset(AssetPort_Stub.
    java:67)
    at transferasset.Main.main(Main.java:34)
    I'm using NetBeans 5.0 with JDK 1.4 and the JAX-RPC 1.6
    here is my Code:
    package transferasset;
    import java.io.*;
    import javax.xml.rpc.*;
    import java.rmi.*;
    * @author Administrator
    public class Main {
        /** Creates a new instance of Main */
        public Main() {
         * @param args the command line arguments
        public static void main(String[] args) {
           try{
             System.out.println(args[0] + " " + args[1] + " " + args[2] );
             qtel.tibco.transferAsset.AssetManagementServiceServiceagent service = new qtel.tibco.transferAsset.AssetManagementServiceServiceagent_Impl();
             qtel.tibco.transferAsset.AssetPort port = service.getAssetPortEndpoint1();
             qtel.tibco.transferAsset.TransferAssetRequest req = new  qtel.tibco.transferAsset.TransferAssetRequest(args[0].toString(),args[1].toString(),args[2].toString());
             qtel.tibco.transferAsset.TransferAssetResponse result = port.transferAsset(req);
             System.out.print(result.getData().getReturnStatus());
           }catch(javax.xml.rpc.soap.SOAPFaultException e){
               //System.out.print(e.getFaultString());
               //System.out.print(e.getFaultActor());
               e.printStackTrace();
        }catch(Exception e){
                e.printStackTrace();
               System.out.println(e.getMessage());
               //System.out.println("exception");
           //return result.getData().getReturnStatus();
    }the problem is as folowwing in the command prompt when I run the following command I will have no error and the web service work fine:
    java -jar "C:\updateassetinfo\dist\updateassetinfo.jar" 1 1 1
    but the problem will appear if I send a character in the parametars like this:
    java -jar "C:\updateassetinfo\dist\updateassetinfo.jar" 12367 3456 HC-098
    So any help will be Appreciated
    thanks in advance.

    Hi guys,
    I'm trying to consume a web service but I have the following problem when I consume it:
    javax.xml.rpc.soap.SOAPFaultException: Internal Error
    at com.sun.xml.rpc.client.StreamingSender._raiseFault(StreamingSender.ja
    va:491)
    at com.sun.xml.rpc.client.StreamingSender._send(StreamingSender.java:307
    at qtel.tibco.transferAsset.AssetPort_Stub.transferAsset(AssetPort_Stub.
    java:67)
    at transferasset.Main.main(Main.java:34)
    I'm using NetBeans 5.0 with JDK 1.4 and the JAX-RPC 1.6
    here is my Code:
    package transferasset;
    import java.io.*;
    import javax.xml.rpc.*;
    import java.rmi.*;
    * @author Administrator
    public class Main {
        /** Creates a new instance of Main */
        public Main() {
         * @param args the command line arguments
        public static void main(String[] args) {
           try{
             System.out.println(args[0] + " " + args[1] + " " + args[2] );
             qtel.tibco.transferAsset.AssetManagementServiceServiceagent service = new qtel.tibco.transferAsset.AssetManagementServiceServiceagent_Impl();
             qtel.tibco.transferAsset.AssetPort port = service.getAssetPortEndpoint1();
             qtel.tibco.transferAsset.TransferAssetRequest req = new  qtel.tibco.transferAsset.TransferAssetRequest(args[0].toString(),args[1].toString(),args[2].toString());
             qtel.tibco.transferAsset.TransferAssetResponse result = port.transferAsset(req);
             System.out.print(result.getData().getReturnStatus());
           }catch(javax.xml.rpc.soap.SOAPFaultException e){
               //System.out.print(e.getFaultString());
               //System.out.print(e.getFaultActor());
               e.printStackTrace();
        }catch(Exception e){
                e.printStackTrace();
               System.out.println(e.getMessage());
               //System.out.println("exception");
           //return result.getData().getReturnStatus();
    }the problem is as folowwing in the command prompt when I run the following command I will have no error and the web service work fine:
    java -jar "C:\updateassetinfo\dist\updateassetinfo.jar" 1 1 1
    but the problem will appear if I send a character in the parametars like this:
    java -jar "C:\updateassetinfo\dist\updateassetinfo.jar" 12367 3456 HC-098
    So any help will be Appreciated
    thanks in advance.

  • Consuming a Web Service with WEB AS 6.40

    Hello,
    i try to consume a Webservice from the internet. I have configured the logical port and i created the client proxy as shown in the following real good weblog from
    Thomas Jung.
    /people/thomas.jung3/blog/2004/11/17/bsp-a-developers-journal-part-xiv--consuming-webservices-with-abap
    But when i try to test the proxy in SE80 I retrieve the following error:
    <CODECONTEXT>http://www.sap.com/xml_errorcodes</CODECONTEXT>
      <CODE>SOAP:111</CODE>
      <ERRORTEXT>Unallowed RFC-XML Tag (SOAP_EINVALDOC)</ERRORTEXT>
    What's wrong here? Someone can help me?
    Thanks for your help!
    Klaus

    We had the same error message for one of our Proxy Web Service calls.
    We tried to use an RFC instead of the URL, and performed a TEST CONNECTION.  And low and behold, we received an error message that was much more helpful than the "Unallowed RFC-XML Tag (SOAP_EINVALDOC)" message.
    The problem for us was that the Server that we were trying to consume the Web service from was blocking the IP address of our Web Application Server.
    We contacted the administrator, he verified that was the case, removed the restriction, and all is good now.
    Here was the message we saw when we tested it in the RFC:
    The Web server you are attempting to reach has a list of IP addresses that are not allowed to access the Web site, and the IP address of your browsing computer is on this list.  Please try the following: Contact the Web site administrator if you believe you should be able to view this directory or page.
    Hope this helps!

  • Consuming a Web Service with ABAP in WAS 6.40 (SS3)

    Hi Everyone,
         Has anyone successfully consumed a web service (based on an EJB) that is published to the J2EE engine of their WAS 6.40 server by creating a proxy from the ABAP layer?
         We are encountering the following problem: When executing method of the proxy to call the Web Service on the J2EE engine, the CX_AI_SYSTEM_FAULT exception is triggered with the message "Unallowed RFC-XML Tag (SOAP_EINVALDOC)".
         This same problem has occurred with multiple web services, even though the proxy generation seems to execute without a problem.  Is there some system setting that could cause this?  We have run the SOAP Runtime trace, but only receive the same basic information about the problem.
         If anyone has any thoughts at all, I'd be grateful to hear them.
         Thanks,
            --Greg

    Hi,
    We encountered problems when consuming a foreign WS. It seems to be that RPC style WSDL isn't supported by the WAS 6.4 WS proxy. An interesting reading on this is
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/documents/a1-8-4/the difference between rpc and document style wsdl.article
    Eddy

  • Consuming SAP web services with tables

    I'm doing kind of feasibility study on consuming SAP web
    services from CF.
    So far so good, but I'm stuck dealing with tables
    (import/export parameters in SAP world).
    I know how to receive a table object from SAP functions:
    * With Apache Axis v1.2: pass an empty CF structure as a
    parameter
    * With Apache Axis v1.4: pass an empty CF array as a
    parameter
    Then the parameter is filled with data (replaced with Java
    object) and we can just parse the object accordingly.
    My question here is whether or not we can pass a *table with
    actual records*.
    For example, I want to pass a table with multiple records to
    update DB records under SAP.
    I tried passing (1) CF array of structure and (2) Java
    ArrayList with no chance.
    The web service call itself completes without errors (no
    method signature error), but the SAP function seems to see the
    parameter as an empty table.
    Anyone has been successful with this case?
    Any suggestion would be much appreciated.

    Thanks Dan,
    Unfortunately CF query object didn't work either.
    Now I'm looking at the code generated by Flex Builder to see
    how the classes are like ;-)
    It's just an ArrayCollection of simple value objects
    (representing a row).
    So CF array of structure or Java ArrayList looks a reasonable
    approach though they don't at all.

  • Consuming  a Web Service with PasswordDigest Authentication in ABAP

    Hello,
    I need to consume a web service in ABAP from a non-SAP application. The web service uses wsse:UsernameToken with PasswordDigest in the SOAP Header for authentication. However, I havent seen any documentation for using Password Digest in ABAP.
    Is it possible to use Password Digest in ABAP?
    Thanks
    Ajay

    Hi Marc,
    Here is the ABAP Code to build the SOAP header.
    FUNCTION Z_GET_SOAP_REQUEST_HEADER.
    *"*"Local Interface:
    *"  EXPORTING
    *"     VALUE(ER_SECURITY_ELEMENT) TYPE REF TO  IF_IXML_ELEMENT
    *date and time data
      data: lv_sys_date like sy-datum,
            lv_sys_time like sy-uzeit,
            lv_year(4) type c,
            lv_month(2) type c,
            lv_date(2) type c,
            lv_hour(2) type c,
            lv_min(2) type c,
            lv_sec(2) type c.
      data : lv_created type string,
            lv_snonce type string,
            lv_b64nonce type string,
            lv_webservice_password type string,
            lv_webservice_userid type string,
            lv_spassword type string,
            lv_xpassword type xstring,
            lv_hpassword type hash160x,
            lv_b64password(255) type c,
            lv_xpasslen type i,
            lv_hpasslen type i.
    *xml declartions
      data : lv_sheader type string,
            lv_xheader type xstring,
            xml_document TYPE REF TO if_ixml_document,
            xml_root TYPE REF TO if_ixml_element,
            xml_element TYPE REF TO if_ixml_element,
            xml_node TYPE REF TO if_ixml_node.
    *get the c-link password.
    CALL METHOD ZCL_CDB_SYNC_CFG_READER=>GET_USERID_PASSWORD
      IMPORTING
        EV_USER_ID  = lv_webservice_userid
        EV_PASSWORD = lv_webservice_password
    *Evaluate created date time
      lv_sys_date = sy-datum.
      lv_sys_time = sy-uzeit.
      lv_year = lv_sys_date(4).
      lv_month = lv_sys_date+4(2).
      lv_date = lv_sys_date+6(2).
      lv_hour = lv_sys_time(2).
      lv_min = lv_sys_time+2(2).
      lv_sec = lv_sys_time+4(2).
      CONCATENATE lv_year '-' lv_month '-' lv_date 'T' lv_hour ':' lv_min ':' lv_sec '.000Z' into lv_created.
    *Create and encode the nonce
      CALL FUNCTION 'GENERAL_GET_RANDOM_STRING'
        EXPORTING
          NUMBER_CHARS  = 24
        IMPORTING
          RANDOM_STRING = lv_snonce.
      CALL METHOD cl_http_utility=>ENCODE_BASE64
        EXPORTING
          UNENCODED = lv_snonce
        RECEIVING
          ENCODED   = lv_b64nonce.
    *create the password to be sent to web service
      CONCATENATE lv_snonce lv_created lv_webservice_password into lv_spassword.
    *encode password to xstring
      CALL FUNCTION 'SCMS_STRING_TO_XSTRING'
        EXPORTING
          TEXT   = lv_spassword
        IMPORTING
          BUFFER = lv_xpassword.
      lv_xpasslen = xstrlen( lv_xpassword ).
      CALL FUNCTION 'CALCULATE_HASH_FOR_RAW'
        EXPORTING
          ALG      = 'SHA1'
          DATA     = lv_xpassword
          LENGTH   = lv_xpasslen
        IMPORTING
          HASHX    = lv_hpassword
          HASHXLEN = lv_hpasslen.
      CALL FUNCTION 'SCMS_BASE64_ENCODE'
        EXPORTING
          INPUT            = lv_hpassword
          INPUT_LENGTH     = lv_hpasslen
        IMPORTING
          OUTPUT           = lv_b64password
        EXCEPTIONS
          OUTPUT_TOO_SMALL = 1
          OTHERS           = 2.
      IF SY-SUBRC <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    * build the header
      CONCATENATE
    '<soap-env:Header xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">'
    '<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">'
    '<wsse:UsernameToken wsu:Id="########" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">'
    '<wsse:Username>'
    lv_webservice_userid
    '</wsse:Username>'
    '<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">'
    lv_b64password
    '</wsse:Password>'
    '<wsse:Nonce>'
    lv_b64nonce
    '</wsse:Nonce>'
    '<wsu:Created>'
    lv_created
    '</wsu:Created>'
    '</wsse:UsernameToken>'
    '</wsse:Security>'
    '</soap-env:Header>'
    INTO lv_sheader.
    *Build the xml header element
      lv_xheader = cl_proxy_service=>cstring2xstring( lv_sheader ).
      TRY.
          CALL FUNCTION 'SDIXML_XML_TO_DOM'
            EXPORTING
              xml           = lv_xheader
            IMPORTING
              document      = xml_document
            EXCEPTIONS
              invalid_input = 1
              OTHERS        = 2.
          IF sy-subrc = 0 AND NOT xml_document IS INITIAL.
            xml_root = xml_document->get_root_element( ).
            er_security_element ?= xml_root->get_first_child( ).
            gr_soap_security_header = er_security_element.
          ENDIF.
        CATCH cx_ai_system_fault .
      ENDTRY.
    ENDFUNCTION.

  • Consuming an ASP web service which responds with complex data types...

    Here's my problem - I'm trying to consume a web service from a provider that uses complex data types.
    The starting part of the WSDL looks like this (I've not included the whole thing) - named have been changed to protect the innocent:
    <wsdl:definitions targetNamespace="http://domain_name">
    <wsdl:types>
    <s:schema elementFormDefault="qualified" targetNamespace="http://domain_name">
    <s:element name="Authentication">
    <s:complexType>
    <s:sequence>
    <s:element minOccurs="0" maxOccurs="1" name="Username" type="s:string"/>
    <s:element minOccurs="0" maxOccurs="1" name="Password" type="s:string"/>
    <s:element minOccurs="0" maxOccurs="1" name="Token"/>
    </s:sequence>
    </s:complexType>
    </s:element>
    <s:element name="AuthenticateResponse">
    <s:complexType>
    <s:sequence>
    <s:element minOccurs="1" maxOccurs="1" name="AuthOK" type="s:int"/>
    <s:element minOccurs="0" maxOccurs="1" name="Token"/>
    </s:sequence>
    </s:complexType>
    </s:element>
    Since it's a complexType return, with a sequence, I'd expect an array or structure returned, but instead I just get the "AuthOK" value, and no way to get anything else.
    Here are the ways I've tried calling it:
    <cfscript>
        WS = createObject("webservice", "https://WSDL_URL");
        WS_ret = WS.Authentication(Username = "username", Password = "password", Token = "");
    </cfscript>
    <cfdump var="#WS_ret#" />
    <cfinvoke webservice="WSDL_URL" method="Authentication" returnVariable="WS_ret">
        <cfinvokeargument name="userID" value="7253320" />
        <cfinvokeargument name="password" value="ctpjxs3" />
        <cfinvokeargument name="SecurityToken" value="" />
    </cfinvoke>
    <cfdump var="#WS_ret#" />
    Any ideas how I can get the other variables in the sequence? I have other calls after this that have a much larger amount of variables, and as such I can't use it without being about to get more of the

    Thanks for the reply.
    If I CFDUMP the variable it returns just "1", no XML tags, nothing at all around the data - according to the web service providers they say that they are supplying the Token part as long as the first variable is "1" (a logical true if the authentication passed). If it is "0" then no Token is returned, that is why it's optional.
    As for the CFdocs issue, look here:
    http://livedocs.adobe.com/coldfusion/8/htmldocs/help.html?content=webservices_25.html
    The paragraph before it (about 2/3 down the page) states:
    In this example, the operation updateEmployeeInfo takes a complex type as input and returns a complex type as output. To handle the input parameter, you create a structure. To handle the returned value, you write it to a ColdFusion variable, as the following example shows:
    It even states that you call "updateEmployeeInfo", and nowhere mentions "echoStruct" as a method - it's seemingly been put in as a random method name, or a function call for something else. The WSDL above the example only mentions "updateEmployeeInfo" and "updateEmployeeInfoSoapOut", again not mentioning "echoStruct".
    I see this as an error in the docs as it's calling a non-existant entity in the WSDL, which should cause a run-time error.

  • SOAPFaultException with wsse:Security Tag consuming a Web-Service

    hello,
    i'm trying to consume a Web-Service of a Document-Server implementing the new CMIS-Interface.
    When i call the Service i get the exception:
    javax.xml.ws.soap.SOAPFaultException: An error was discovered processing the <wsse:Security> header
    my code (in an EJB 3.0 of NWCE 7.1 CE Server) is as follows:
    @Stateless(name="DocRepBean")
    public class AlfRepBean implements DocRepLocal {
         @WebServiceRef(name="RepositoryService")
         private RepositoryService rService;
         public String repServiceList ()
              String result = "";
              RepositoryServicePort rPort = rService.getRepositoryServicePort();
              try
                   String rList = "";
                   for (CmisRepositoryEntryType rEntry : rPort.getRepositories())
                        rList = rList + "REntry:ID="+rEntry.getRepositoryID()+";Name="+rEntry.getRepositoryName()+";URI="+rEntry.getRepositoryURI()+":";
                   result = rList;
              catch (Exception ex)
                   result = "!Exeption:" + ex.toString();
                   ex.printStackTrace();
                            // here the exception is thrown
              return result;
    Is there maybee a problem with authentification? but how can i set user and password calling that service then?
    Sorry for this maybe easy questions but i'm new in consuming other webservices.
    regards
    matthias hayk

    Found solution for this particular problem myself but ran into an follow-up error

  • Consuming a web service with an applet...

    Hi, Ive created an applet in netbeans 5.5, which consumes a web service - it works 100% "run file" in the ide, but when i look at it via web browser, it seems the webservice object cannot be instantiated. I'm guessing I need to somehow include jax-ws objects in my deployment, but how do I do this? - I'm a little out of my depth here, so please explain thoroughly
    Thanks

    Hi,
    We encountered problems when consuming a foreign WS. It seems to be that RPC style WSDL isn't supported by the WAS 6.4 WS proxy. An interesting reading on this is
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/documents/a1-8-4/the difference between rpc and document style wsdl.article
    Eddy

  • Consuming Java Web Service with complex return types

    Hi,
    I'm consuming a Java Web Service and the return I get in
    ColdFusion is a typed Java Object (with custom Java classes like
    com.company.project.JavaClass ...)
    Within this object I don't get direct accessible properties
    as when I'm consuming ColdFusion Web Services, instead I get a
    getPROPERTYNAME and setPROPERTYNAME method for each property.
    How can I handle this? I don't want to call this methods for
    each property (and there are nested objects with arrays of custom
    classes below, which would really make this complicated).
    What's the best way to cope up with this?
    Thanks a lot,
    Fritz

    The web service is actually the function, not the cfc and you
    didn't show a function.
    My own opinion is that since webservices by definition should
    be available to any calling app (cold fusion, .net, flash, etc),
    whatever gets returned from the method should be as universally
    recognizable as possible. This generally means text, numbers,
    boolean, or xml.

  • Consuming a web service with header

    Hi
    I am trying to consume a web service in BIP.
    But the problem is that the authentication is in the header of the SOAP, it does not take the values provided in username/password field in complex type service.
    (However i am able to see the methods in the body of the web service.)
    hence i get an error "username not specified"
    how do i pass the credentials in the header of the soap?
    I am using BIP 10.1.3.4

    This is the output at the oc4j when I try to execute:
    After WSS soapMessage = <soap:Envelope xmlns:soap="http://sche
    mas.xmlsoap.org/soap/envelope/">
    *<soap:Header></soap:Header>*
    <soap:Body xmlns:ns1="urn:XYZ_Request">
    <ns1:OpGet>
    <ns1:Request_ID>000000000000019</ns1:Request_ID>
    </ns1:OpGet>
    </soap:Body>
    </soap:Envelope>
    Notice that Header is null. I want to pass the authentication in the header.

  • Stumbling...Consuming a Web Service

    I have written much code to publish and consume web services under MS .NET. Now I need to do the same in Java on an Oracle Portal platform. The help/docs were quite useful in getting me to create the code for the web service and the stub for accessing a web service. But now I'm suddenly lost. The stub for the web service client has a method with signature that takes Elements and returns a Vector. It appears that "Element" refers to an XML Element (probably created via DOM) and that "Vector" is a Vector of such Elements as returned in the response. I assume that there must be a way of creating these elements and of extracting the results from the ones returned in the Vector - something short of developing my own DOM parser. But the jDeveloper help is clueless on this topic. The index for help contains nothing on DOM, Document Object Model, Element, and so forth. When I go the forums, it appears that everyone already knows the secret but I'm standing in the cold. The popup tips know nothing about Element, even if I import org.w3c.dom. Where is the help/docs on this... or some sample code? I'm sure that the solution is quite simple -- probably a couple of lines of code. In summary, all I want to know is how to get between "String myWebCall(String)" and "Vector myWebCall(Element)" so that I can pass parameters and see the response. Am I stupid? (...is my wife right?)

    James, unfortunately the consumption of .NET document style Web services takes a little bit of work. The stub generator, as you note will generate a client but results in an XML element rather than a string. What this means is the magic sauce you refer to is called a bit of handcoding ... Read on for a sample.
    The good news is the summer release of Oracle9i JDeveloper the code will be automatically generated for .NET services. You won't have to parse any XML as below but get back the string arguments you are expecting. Sorry it is yet to come.
    However, in the meantime, to give you a hand on how to construct a client based on a working example find below some code from a class MainClient.java that consumes the Web service LocalTimeByZipCode off of XMethods.com - its WSDL is located at:
    http://www.alethea.net/webservices/LocalTime.asmx?WSDL
    Just go to http://www.alethea.net/webservices/LocalTime.asmx to see what the service is expecting versus readin the WSDL. If you have been working with .NET you will know this.
    Then point JDeveloper's stub/skeleton generator at this WSDL (or conversely your own service) and then create the client, MainClient.java with the following code (note the package I am using is mypackage1). In your JDeveloper libraries you should only have to include "Oracle SOAP", "Oracle XML Parser V2" and "Oracle9i JDeveloper Runtime" (as usual). Hopefully this code sample gives you how to tackle it now.
    package mypackage1;
    import org.w3c.dom.*;
    import oracle.xml.parser.v2.*;
    import java.util.Vector;
    import java.util.Enumeration;
    public class MainClient
    public MainClient()
    XMLDocument doc = new XMLDocument();
    Element top = doc.createElementNS("http://alethea.net/webservices",
    "tns:LocalTimeByZipCode");
    Element zip = doc.createElementNS("http://alethea.net/webservices",
    "tns:ZipCode");
    Text text = doc.createTextNode("text#");
    // Set the zip code parameter
    text.setNodeValue("94116");
    zip.appendChild(text);
    top.appendChild(zip);
    LocalTimeStub lts = new LocalTimeStub();
    try
    System.out.println("Sending:");
    ((XMLElement)top).print(System.out);
    Vector response = lts.LocalTimeByZipCode(top);
    System.out.println("Received " + response.size() + " element");
    Enumeration enum = response.elements();
    while (enum.hasMoreElements())
    Object o = enum.nextElement();
    System.out.println("Returned a " + o.getClass().getName());
    if (o instanceof XMLElement)
    XMLElement xml = (XMLElement)o;
    xml.print(System.out);
    else
    System.out.println("Returned " + o.toString());
    catch (Exception e)
    e.printStackTrace();
    public static void main(String[] args)
    MainClient mainClient = new MainClient();
    Mike.

Maybe you are looking for

  • Help in Pivot report output

    Hi All, Iam having one pivot report output i want sort by column in dashboard if it is table output then we have option to sort by column in dashboard Is this possible to sort by column in pivot output Please help me Thanks in Advance

  • How do I get credit card information off so I can download free game

    How do I get credit card information off my accounts settings so I can download free games

  • New school server won't allow "software updates".

    I'm a teacher and through grant writing have acquired several Macs in an all PC district. Recently the district installed a new server, and since then I haven't been able to connect to "software update". The IT guy in the district said that if I had

  • Problem in FS00 in displaying GL Account

    Hi All, I tried to view a GL account through the transaction FS00 and used the F4 help to get the values but the value which i choose from the F4 help does not get displayed and a error message saying 'GL account does not exists in the company code'

  • AIR is not loaded properly

    Hi,      This technique of submitting a question is another reason to be unhappy with Adobe.      I purchased earlier versions of Adobe Premiere and Photoshop a couple of years back.  I never managed to get Premiere working.  I wouldn't guarantee the