Web Service in APEX - read from SYS_REFCURSOR -

Hi,
I created a package in the database 10g to give a result with multiple lines:
PACKAGE BODY "PKEMPLOYEES" AS
function getEmployees(p_dept_id number) return SYS_REFCURSOR
as
p_return_cur SYS_REFCURSOR;
BEGIN
OPEN p_return_cur FOR
'Select first_name from employees where department_id=' || p_dept_id;
return p_return_cur;
end getEmployees;
END;
Then, with the JDeveloper (10.1.3), I have deployed the package as a web service in OC4J Standalone and I used Jpublisher:
jpub -user hr/hr -sysuser sys/orclbd
-proxywsdl=http://144.22.197.113:8888/appEmp-ProjEmp-context-root/MyWSEmpSoapHttpPort?WSDL
-proxyopts=tabfun -httpproxy=(removed proxy - on our hosted instance, you cannot use web services)
-endpoint=http://144.22.197.113:8888/appEmp-ProjEmp-context-root/MyWSEmpSoapHttpPort
-plsqlpackage=pkWSEmp -dir=wsEmp
And, in APEX 2.2, I have tried to use the web service but there is an error:
ORA-20001: env:Clientcaught exception while handling request: unexpected element name: expected={http://hr/MyWSEmp.wsdl/types/}getemployeesXMLRowSetElement, actual={http://hr/MyWSEmp.wsdl}getemployeesXMLR
I think that the APEX don't recognize the SYS_REFCURSOR, but I don't know the way to resolve this.
Any ideas??
Thank you all,
Carla Diogo
Message was edited by:
sbkenned

Hi,
What I really pretend is to have a web service that give me the result of a query. The result is multiple lines of a table. I want to call it from APEX to view the result.
What I don't know how to do is the best way to have multiple line result from a web service, in APEX 2.2.
I need to call the web service from the database and then call the procedure in APEX? There is any type (with multiple line) that I can use on the web service that is recognized by APEX?
I'm new in this...
Thank you

Similar Messages

  • Can I deploy web service on APEX server

    I have APEX 3.1.2 on 11g database.
    I need to pull data from other oracle 9i databases into APEX application. I have created web service on my pl/sql package to pull data from 9i databases and deployed service on my local oc4j instance (within jdeveloper). My APEX app pull data from multiple oracle 9i database. Now I need to move my web service to my dev/test environment.
    Can I deploy web service on APEX server? or do I need to deploy on another web server?
    I know I can easily pull the data from other oracle 9i databases using DB link. I want to explore Web services option to just to see is it possible to pull data from multiple sources into APEX app using web service running from APEX server?.
    Any help on this will be appreciated.
    RK Shah
    Edited by: RK Shah on Apr 7, 2009 7:27 PM

    I am in the same situation. Consuming a web service is easy with APEX. But publishing one needs a web server that is more complex than the one that comes with APEX for free.
    I am exploring the possibility of building the web service in Jdeveloper as you have. Then I will make a WAR file that I will publish to an apache tomcat J2EE server that another department runs. I believe it will work since all the components required should be in the WAR file.
    I am new at this. I will let you know how it works out.
    The other possibility is to upgrade the appserver to the full Oracle Fusion server (maybe). This may be expensive and be too much for just a simple web service. But then the publish to application server from jdeveloper is super easy.

  • Calling Web Service with SOAP header from BPEL

    Hi,
    I am calling a web service (with header information) from BPEL. In the Invoke activity, i created a header variable to pass the header information.
    But, when i test the BPEL service, invoke activity fails because the header information is not being passed.
    Below is the error message (copied from clipboard).
    +<messages><input><Invoke_1_getsubinfo_InputVariable><part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="parameters"><getsubinfoElement xmlns="http://ws/its/tabs/webservices/SingleRowWS/SingleRowWS.wsdl">+
    +<pSubnoin>+
    +<insubno>12345678</insubno>+
    +</pSubnoin>+
    +</getsubinfoElement>+
    +</part></Invoke_1_getsubinfo_InputVariable></input><fault><bindingFault xmlns="http://schemas.oracle.com/bpel/extension"><part name="summary"><summary>exception on JaxRpc invoke:+
    start fault message:+
    Internal Server Error (Caught exception while handling request: javax.xml.rpc.JAXRPCException: Not authenticated user)+
    *:end fault message*</summary>
    +</part></bindingFault></fault></messages>+
    As said, no header information is visible in the Invoke activity.
    Please provide help for the above issue.
    -MJ

    Hello Patrick,
    Thanks for the response. I am using normal assign activity to assign values to the header variable as shown below. HeadMT is the header variable which is passed in the invoke activity.
    +<assign name="Assign_Header">+
    +<copy>+
    +<from expression="'tkl12'"/>+
    +<to query="/ns1:LOGIN_INFO/ns1:USER_NAME" variable="*HeadMT*"+
    part="payload"/>
    +</copy>+
    +<copy>+
    +<from expression="'tkl123'"/>+
    +<to query="/ns1:LOGIN_INFO/ns1:PASSWORD" variable="*HeadMT*"+
    part="payload"/>
    +</copy>+
    +<copy>+
    +<from expression="'TKL'"/>+
    +<to query="/ns1:LOGIN_INFO/ns1:CHANNEL_ID" variable="*HeadMT*"+
    part="payload"/>
    +</copy>+
    +</assign>+
    The expected input by the web service is as below with the header information highlighted.
    +<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://ws/webservices/RowWS/RowWS.wsdl">+
    +*<soap:Header>*+
    +*<ns1:LOGIN_INFO>*+
    +*<ns1:USERNAME>tkl12</ns1:USERNAME>*+
    +*<ns1:PASSWORD>tkl123</ns1:PASSWORD>*+
    +*<ns1:CHANNEL_ID>TKL</ns1:CHANNEL_ID>*+
    +*</ns1:LOGIN_INFO>*+
    +*</soap:Header>*+
    +<soap:Body>+
    +<ns1:substatusElement>+
    +<ns1:pInparam>+
    +<ns1:insubno>7674988</ns1:insubno>+
    +</ns1:pInparam>+
    +</ns1:substatusElement>+
    +</soap:Body>+
    +</soap:Envelope>+

  • Develop Web Services in APEX

    Hi,
    I'm just getting started and i need to know what is the best way to develop an web service in apex ou expose functionality as such. Is this possible or do i have to buy some product to do this? If so, which one?
    Thanks in advance.
    Best Regards,
    Pedro

    Hello Pedro,
    If you want to develop a web service, APEX is not the first choice. You should better go for JDeveloper (also free).
    APEX is perfect for consuming web services though...
    Greetings,
    Roel
    http://roelhartman.blogspot.com/
    http://www.bloggingaboutoracle.org/
    http://www.logica.com/
    You can award this reply to your question by marking it as either Helpful or Correct ;-)

  • Is it possible to call a web service within acrobat reader.

    Hi,
    I designed a form template which makes a web service call.
    Then tested the form using acrobat professional 8.0.
    Everything was fine.
    But, when I open the same form with acrobat reader, the web service call didn't work.
    I want to know is this a known issue that It is not allowed to call a web service in acrobat reader?

    Hi
    Reader does not have the capability to call Web Services.
    You have two options:
    1. Get your clients to buy a copy of Acrobat.
    2. Purchase a product from Adobe called "Reader Extensions". This allows you to "extend" your form in such a way that it will be able to call web services. (You can also save it locally, and do a bunch of other things that normally you can't do in Reader.) Your clients will then be able to call web services (for this form only) using Reader.
    If you'd like more information on Reader Extensions, email info-at- avoka.com.
    Howard
    http://www.avoka.com

  • Publish XDB web service on apex application

    Could any one please help me out to use native oracle XML DB web service on apex application.
    In apex application, basically i need to have a report that displays all PO requests with links to each request # to drill down to the form page where the vendor are allowed to submit some corresponding data to th PO request.
    All i need is to know how do i use the native oracle XML DB web service to show the report to the vendors with drill down links and capture the data, the vendor submits through the form.
    Thanks in advance!!
    Regards,
    Rame

    I think you might be on the wrong track. Web services don't "show" anything really. They take in either XML in the case of SOAP-style web services or an HTTP request in the case of restful web services. They typically return XML, but can return JSON or other machine readable formats. Web services don't have forms and reports. More information here: http://en.wikipedia.org/wiki/Web_service . To have a human interact with a web service, you typically have a UI layer. For instance, in APEX you can build a form or a report on a web service (the same is true for most popular web technologies).
    In APEX 4.0+ you can expose a report as a restful web service, but I really don't think that is what you want to do. There's no way that I can think of to use the XDB web services to expose any component of APEX.
    In short, people interact with web applications, such as APEX apps. Machines, such as databases or application servers, interact with web services.
    So, do you need to expose some component of your application as an API (web service) that vendors can call programmatically from some other technology such as Java or PHP? Or do you want to build a web application that people can interact with?
    Tyler Muth
    http://tylermuth.wordpress.com
    "Applied Oracle Security: Developing Secure Database and Middleware Environments": http://sn.im/aos.book

  • Web Service in Apex

    Hi
    I'm using APEX 2.1.0, OracleXE 10.2, Oracle SOA 10.1.3, Jdev 10.1.3.3
    I've created a webservice in jdeveloper based upon a plsql package it has 3 input parameters and return a parameter
    I've deployed the webservice to my SOA apps server and tested it satisfactorily
    I've then created the web service reference in APEX using the shared components utility and it appears to create the reference ok (based upon the WSDL without searching UDDI), this correctly shows the operation and input and output parameters whilst it is created via the wizard
    I've then tried to create a form based upon the web service in APEX, it shows the operation but it does not show the input parameters it gives the mesage "no data found"
    has anyone else had this problem?
    has anyone got any suggestions?
    thanks
    Andrew

    Jason
    Thanks for this, I've tried to upgrade my APEX to 3.01 using the instructions identified it ran for 9hrs before I killed it I assume that there are some things I need to do on my XE database or my machine is not powerful enough, or something else is awry (not found any other posts on the forum indicating anyone else having a problem with the upgrade so I assume its me!)
    However I have now managed to access another oracle 10g instance that does have Apex 3.01 and I have now successfully built my application on the web services generated in Jdeveloper
    again thanks
    Andrew

  • How configure a primavera web service to return data from the second database?

    Hi everyone,
    We have P6 with first WS deployed on a single server weblogic domain. The first WS return data from the first database instance.
    Then deployed advanced second WS on a separate weblogic domain server with a different port. Configured second WS with <WS2_INSTALL_HOME>/bin/dbconfig.sh, creating a new branch of a configuration that specifies a different second instance of the database. However, this configuration is ignored and second web services return data from the first database.
    We have one domain, which including next servers:
    Name / Host / Port / Deployments
    P6 / localhost / 0001 / P6(v8.3), p6ws1(v8.3)
    p6ws2 / localhost / 0002 / p6ws2(v8.3)
    Now we have two different file BREBootstrap.xml.
    P6 BREBootstrap.xml:
    <Database>
    <URL>jdbc:oracle:thin:@db1:1521:db1</URL>
    <UserName>pubuser</UserName>
    <Password>anycriptopass1</Password>
    <Driver>oracle.jdbc.OracleDriver</Driver>
    <PublicGroupId>1</PublicGroupId>
    </Database>
    <CfgVersion>8.330</CfgVersion>
    <Configurations>
    <BRE name="P6 Config_DB1" instances="1" logDir="anydir/P6EPPM/p6/PrimaveraLogs"/>
    </Configurations>
    p6ws2 BREBootstrap.xml:
    <Database>
    <URL>jdbc:oracle:thin:@db2:1521:db2</URL>
    <UserName>pubuser</UserName>
    <Password>anycriptopass2</Password>
    <Driver>oracle.jdbc.OracleDriver</Driver>
    <PublicGroupId>1</PublicGroupId>
    </Database>
    <CfgVersion>8.330</CfgVersion>
    <Configurations>
    <BRE name="P6 Config_DB2" instances="1" logDir="anydir/P6EPPM/ws2/PrimaveraLogs"/>
    </Configurations>
    ‘P6 Config_DB1’ and ‘P6 Config_DB2’ including Database property for 1 and 2 database respectively.
    How to configure a second web service to return data from the second database?
    Thanks in advance!
    Regards,
    Dmitry

    OK, so I got this to work this morning with Username Token Profile (with little help from Oracle Support).
    I followed your steps 1-4 but in step 2 I didn't add the -Ddatabase.instance=2 because I want to check to see if my code could swap between different instances.
    It appears for Username Token Profile to use Database Instance, you need to set it in the soap header.
    So my soap request looks like this:
    <?xml version="1.0" encoding="utf-8"?>
    <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
        <s:Header>
            <DatabaseInstanceId xmlns="http://xmlns.oracle.com/Primavera/P6/WS/Authentication/V1">2</DatabaseInstanceId>
            <o:Security s:mustUnderstand="1" xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
                <u:Timestamp xmlns:u='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd' u:Id='uuid-327b6ed1-b26d-4a61-81d5-e326174c1961-3'>
                    <u:Created>2014-10-23T04:28:01.152Z</u:Created>
                    <u:Expires>2014-10-23T04:29:01.152Z</u:Expires>
                </u:Timestamp>
                <o:UsernameToken u:Id='uuid-327b6ed1-b26d-4a61-81d5-e326174c1961-3' xmlns:u='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd'>
                    <o:Username>admin</o:Username>
                    <o:Password Type='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText'>password</o:Password>
                    <o:Nonce EncodingType='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary'>vJBQhCc28bAeszej7gOaiC2tVCQ=</o:Nonce>
                    <u:Created>2014-10-23T04:28:01.152Z</u:Created>
                </o:UsernameToken>
            </o:Security>
        </s:Header>
        <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
            <ReadProjects xmlns="http://xmlns.oracle.com/Primavera/P6/WS/Project/V2">
                <Field>ObjectId</Field>
                <Field>Id</Field>
                <Field>Name</Field>
                <Field>Status</Field>
                <Field>StartDate</Field>
                <Field>FinishDate</Field>
                <Field>DataDate</Field>
                <Filter>Id = 'EC00515'</Filter>
            </ReadProjects>
        </s:Body>
    </s:Envelope>
    This request pulled the project from the second instance.
    V/r,
    Gene

  • Error while invoking a Web service deployed on OC4J from Oracle BPEL

    Hi,
    I had created a web service from a simple java class using JDeveloper and deployed that on OC4J which had emmited a wsdl for the web service. On the same AS my BPEL processing is deployed in which i had created a partner link by using 1st option (i.e Browse WSDL files from local file system) and invoking the published method of the java class.I am expecting that the method of the class which is deployed as web service will be executed and i will get the return of the method as the response of the invoke activity , but i am getting this error :
    <remoteFault xmlns="http://schemas.oracle.com/bpel/extension">
    <part name="summary">
    <summary>when invoking locally the endpoint 'http://localhost:8080/MyIM-JavaCustomerFactory-context-root/JavaCustFactory', ; nested exception is: ORABPEL-02052 Cannot lookup BPEL domain. The BPEL domain "JavaCustFactory" cannot be found; the domain may not have initialized properly. Please verify that the BPEL domain loader has a valid set of initialization properties in the application properties file.</summary>
    </part>
    <part name="detail">
    <detail>ORABPEL-02052 Cannot lookup BPEL domain. The BPEL domain "JavaCustFactory" cannot be found; the domain may not have initialized properly. Please verify that the BPEL domain loader has a valid set of initialization properties in the application properties file.</detail>
    </part>
    </remoteFault>
    It seems that the Invoke activity is not able to get the WebService and it is asking for some settings , if any clue regarding this pls reply.
    I can also give the wsdl also.
    mail me at [email protected]

    Hi,
    Thanx it is working now.
    BTW can you give me some urls with info of this kind of setting which i need to do for other kind of integarions in J2EE platform.Sorry if i am asking too much as i am a starter in this technology.

  • How can I call a web service via Adobe Reader XI?

    Hi all,
    I have created a document using LiveCycle (Trial) to get something from my custom web service, using Adobe Pro to open the file and its success to call the web service when clicking the call button, however, when I try to do the same thing using Adobe Reader XI, seems not work. Please help!
    Best Regards,
    Black Leong

    The only way it can work with Reader is if the document is Reader-enabled with LiveCycle Reader Extensions or the similar product from Datalogics. Acrobat is not able to add the corresponding usage right.

  • Calling a web service in external system from SRM

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

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

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

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

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

  • Consuming RESTful web service in Apex app

    Hi,
    I have created a RESTful Web service through an Apex application (4.0) and published as a public web service. Can someone point me to an example of how to then consume that service in another Apex app? The output is straightforward XML that I can retrieve just by pointing the browser to the URL of the service created, but when I go to create the REST Web Reference for the receiving application, I am not sure what to put for the Response Xpath or Response Namespace. The service is meant to just return report records that were created in the REStful Web service with no input required.
    The service XML looks like this:
    <ROWSET>
    <ROW>
    <PROJ_ID>132</PROJ_ID>
    <PSL_NETID>xxxxxxxx</PSL_NETID>
    <PROJECT_TITLE>11g- Oracle Upgrade to RAC 11g</PROJECT_TITLE>
    <CUSTOMER>OIT</CUSTOMER>
    <DIVISION>EIS</DIVISION>
    </ROW>
    <ROW>
    <PROJ_ID>132</PROJ_ID>
    <PSL_NETID>xxxxxx</PSL_NETID>
    <PROJECT_TITLE>11g- Oracle Upgrade to RAC 11g</PROJECT_TITLE>
    <CUSTOMER>OIT</CUSTOMER>
    <DIVISION>CSS</DIVISION>
    Any help would be appreciated.
    Thanks,
    Pat
    Edited by: patfmnd on Dec 7, 2012 3:04 AM

    Hi,
    I have made progress in this. I created the RESTful report service in an Apex 4.1 application. (previous attempt was with 4.0 version of Apex)
    I then created a separate application and created a RESTful web service reference that I tested and it was successful in bringing up XML. However in Apex 4.1, when I create a report following the Wizard for creating a report based on that Web service reference I get the error: ORA-31013: Invalid XPATH expression Which I don't know how to get past. The Xpath provided in the Web service reference test gave output below and brought back a result. There was no where during the Report creation to provide an Xpath. Am I missing something or is 4.1 not quite Web service ready??
    This is what I get from the test of the Web service reference in the Apex App from which I want to create a report: (I see in this XML the data I was expecting from the test of the RESTful web service but it looks like the output I get from the Web service test is more like the Report xml itself.)
    <!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml" xmlns:htmldb="http://htmldb.oracle.com" xmlns:apex="http://apex.oracle.com"> <head> <title>Author</title>
    <!--[if IE]><link rel="stylesheet" href="/i/css/apex_ie_4_1.css" type="text/css" /><![endif]--> <script type="text/javascript">
    //<![CDATA[
    var apex_img_dir = "/i/", htmldb_Img_Dir = apex_img_dir;
    //]]>
    </script>
    <script src="/i/javascript/apex_4_1.min.js" type="text/javascript">
    </script>
    <script type="text/javascript">
    //<![CDATA[
    apex.security.framebreaker("D");
    //]]>
    </script>
    <!--[if IE]><link rel="stylesheet" href="/i/themes/theme_2/css/theme_4_0_ie.css" type="text/css" /><![endif]--><!--[if IE 6]><link rel="stylesheet" href="/i/themes/theme_2/css/theme_4_0_ie6.css" type="text/css" /><![endif]--><!--[if IE 7]><link rel="stylesheet" href="/i/themes/theme_2/css/theme_4_0_ie7.css" type="text/css" /><![endif]--><!--[if lte IE 6]><div id="outdated-browser">You are using an outdated web browser. For a list of supported browsers, please reference the Oracle Application Express Installation Guide.</div><![endif]-->
    <form action="wwv_flow.accept" method="post" name="wwv_flow" id="wwvFlowForm"><input type="hidden" name="p_flow_id" value="140" id="pFlowId" /><input type="hidden" name="p_flow_step_id" value="1" id="pFlowStepId" /><input type="hidden" name="p_instance" value="6146802068150520" id="pInstance" /><input type="hidden" name="p_page_submission_id" value="1940235134399423" id="pPageSubmissionId" /><input type="hidden" name="p_request" value="" id="pRequest" />
    <div id="header">
    <div id="app-logo"><a href="f?p=140:1:0"></a></div>
    <div id="navbar">
    <div class="navbar-entry">Logout</div>
    </div>
    </div>
    <div id="tabs">
    <div class="frame">
    <div class="bg">
    <div class="tab-holder">
    <div class="first-current">
    <div><span>Author</span></div>
    </div>
    </div>
    </div>
    </div>
    </div>
    <div id="topbar">
    <div class="breadcrumb-region" id="R170908223330421512">
    <div>
    <div id="breadcrumbs">
    <ul class="breadcrumb-list">
    <li class="current">Author</li>
    </ul>
    </div>
    </div>
    </div>
    </div>
    <div id="messages"></div>
    <div id="body">
    <table class="tbl-body" cellspacing="0" cellpadding="0" border="0" summary="">
    <tbody>
    <tr>
    <td class="tbl-main" width="100%">
    <div class="rounded-corner-region" id="books">
    <div class="rc-blue-top">
    <div class="rc-blue-top-r">
    <div class="rc-title">AUTHOR</div>
    <div class="rc-buttons"><button value="Reset" class="button-gray" type="button" id="B170907622885421490"><span>Reset</span></button></div>
    </div>
    </div>
    <div class="rc-body">
    <div class="rc-body-r">
    <div class="rc-content-main">
    <table id="apex_layout_170907030238421484" border="0" class="formlayout" summary="" role="presentation" datatable="0">
    <tr>
    <td align="right"><label for="P1_REPORT_SEARCH" tabindex="999"><a class="optional-w-help" href="javascript:popupFieldHelp('170907422375421487','6146802068150520')" tabindex="999">Search</a></label></td>
    <td colspan="1" rowspan="1" align="left"><input type="hidden" name="p_arg_names" value="170907422375421487" /><input type="text" id="P1_REPORT_SEARCH" name="p_t01" value="" size="30" maxlength="2000" class="text_field" /></td>
    <td align="right"><label for="P1_ROWS" tabindex="999"><a class="optional-w-help" href="javascript:popupFieldHelp('170907508375421490','6146802068150520')" tabindex="999">Display</a></label></td>
    <td colspan="1" rowspan="1" align="left"><input type="hidden" name="p_arg_names" value="170907508375421490" /><select name="p_t02" id="P1_ROWS" size="1" class="selectlist">
    <option value="10">10</option>
    <option value="15" selected="selected">15</option>
    <option value="20">20</option>
    <option value="30">30</option>
    <option value="50">50</option>
    <option value="100">100</option>
    <option value="200">200</option>
    <option value="500">500</option>
    <option value="1000">1000</option>
    <option value="5000">5000</option>
    </select></td>
    <td align="left"></td>
    <td colspan="1" rowspan="1" align="left"><button value="Go" class="button-gray" type="button" id="P1_GO"><span>Go</span></button></td>
    </tr>
    </table>
    <div id="report_170907030238421484_catch">
    <table cellpadding="0" border="0" cellspacing="0" summary="" id="report_books">
    <tr>
    <td></td>
    </tr>
    <tr>
    <td>
    <table cellpadding="0" border="0" cellspacing="0" summary="" class="report-standard">
    <tr>
    <th id="AUTHORID" class="header">
    <div class="rpt-sort">Authorid<img align="absmiddle" src="/i/arrow_up_gray_dark.gif" width="13" height="12" alt="Sort by this column" /></div>
    </th>
    <th id="LNAME" class="header">
    <div class="rpt-sort">Lname</div>
    </th>
    <th id="FNAME" class="header">
    <div class="rpt-sort">Fname</div>
    </th>
    </tr>
    <tr class="highlight-row">
    <td headers="AUTHORID" class="data">A100</td>
    <td headers="LNAME" class="data">AUSTIN</td>
    <td headers="FNAME" class="data">JAMES</td>
    </tr>
    <tr class="highlight-row">
    <td headers="AUTHORID" class="data">A105</td>
    <td headers="LNAME" class="data">ADAMS</td>
    <td headers="FNAME" class="data">JUAN</td>
    </tr>
    <tr class="highlight-row">
    <td headers="AUTHORID" class="data">B100</td>
    <td headers="LNAME" class="data">BAKER</td>
    <td headers="FNAME" class="data">JACK</td>
    </tr>
    <tr class="highlight-row">
    <td headers="AUTHORID" class="data">F100</td>
    <td headers="LNAME" class="data">FIELDS</td>
    <td headers="FNAME" class="data">OSCAR</td>
    </tr>
    <tr class="highlight-row">
    <td headers="AUTHORID" class="data">J100</td>
    <td headers="LNAME" class="data">JONES</td>
    <td headers="FNAME" class="data">JANICE</td>
    </tr>
    <tr class="highlight-row">
    <td headers="AUTHORID" class="data">K100</td>
    <td headers="LNAME" class="data">KZOCHSKY</td>
    <td headers="FNAME" class="data">TAMARA</td>
    </tr>
    <tr class="highlight-row">
    <td headers="AUTHORID" class="data">M100</td>
    <td headers="LNAME" class="data">MARTINEZ</td>
    <td headers="FNAME" class="data">SHEILA</td>
    </tr>
    <tr class="highlight-row">
    <td headers="AUTHORID" class="data">P100</td>
    <td headers="LNAME" class="data">PORTER</td>
    <td headers="FNAME" cla
    Edited by: patfmnd on Dec 12, 2012 5:59 PM
    Edited by: patfmnd on Dec 12, 2012 6:07 PM

  • Web Service : problem calling it from PDF.

    Hi everyone,
    I want to make a call to a web service created by SAP/ABAP.
    I have the wsdl file and I created a new data connection in the Adbobe designer.
    I draged and droped the data connection to the editor : so it created
    2 text fields and a button.
    The web service waits from the user to enter an input string and it gives back as an answer a string as output...simple, isn't it ?
    I also added a button in the designer that points to the connection I created. The button is in mode "execute".
    Finally, I saved all this in a PDF file.
    When I double click the PDF file, I enter a string as input and press the button....Then I go an error message saying that I should specify username and password. So I changed the mode of the button from "Execute" to "Submit". I added to the URL my username and password because the web service points to a backend which is SAP.
    Now I do get another error message which is : Cannot handle content type:text/xml; charset=utf-8.
    I read in the doc that maybe I should use XDP ?
    Can someone please explane me how to solve the problem.
    Thanks in advance for the precious help.
    Thanks in advance.
    Regards.

    The problem is caused by the fact that your web service is returning a content-type header of text/html. The reader product can only handle PDF responses from a web server. In any case, your form data is received OK by the web service; it is just the response back that Acrobat cannot handle.
    To get around this, I created a little "thank you for your response" PDF file and put it on my web server. I then set my perl CGI backend script to send a simple redirect to the PDF when it gets a response. (Obviously, you would want to harvest the form values from your user before redirecting). This solved the problem for me.
    My little perl script is shown below:
    #! /usr/bin/perl
    use CGI;
    $query = CGI::new(); # invoke a new CGI object for the input
    @params = $query->param();
    # do something with the values....
    print $query->redirect(-uri => 'http://mycompany.com/myapp/cgi-bin/thankyou.pdf');

  • How to consume Web Service with Password digest from PLSQL

    We have Oracle 10g (10.2.0.3.0) 64 bit. We have a situation where we need to consume web service whose security header looks like as follow,
    <soapenv:Header>
    <wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
    <wsse:UsernameToken wsu:Id="UsernameToken-50">
    <wsse:Username>weblogic</wsse:Username>
    <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">d2enK45chjBPVvvukbYU6OX56kI=</wsse:Password>
    <wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">YAhEtLJfp4lzycLd3hZYjQ==</wsse:Nonce>
    <wsu:Created>2013-01-22T06:28:38.897Z</wsu:Created>
    </wsse:UsernameToken>
    </wsse:Security>
    </soapenv:Header>
    Here we need passowrd digest, Nonce and Timestamp.
    How to create password digest from PLSQL? or if any other alternatives available please response soon.

    I do not see why it will not be possible to do digest authentication with a web server using PL/SQL.
    As for the digest password - the web server supplies a token (a nonce) which you need to use for creating the hashed authentication token (the digest password). The URL I posted explains this authentication process.
    As for the technical how-to in PL/SQL - as I mentioned, never had to do this (only dealt with Basic and NTLM authentication thus far). But as other auth methods (such as Microsoft's NTLM) can be implemented, I do not see why digest authentication could not.
    Suggest you spend some time googling for technical articles/sample code on the subject - and try to find specific PL/SQL related sample code too.

Maybe you are looking for

  • Ver. 7.1.3 will not install

    I have been trying to upgrade from an older version and kept getting the message "Cannot uninstall older version." I manually deleted the QuickTime folder, rebooted just to keep Windows happy and downloaded the installer. Now I am getting a msg. that

  • ABAP-Proxy to SOAP: Error in SOAP Adapter

    Hi! I would like to implement ABAP-Proxy to SOAP scenario. Unfortunately my SOAP receiver channnel has the following error: SOAP: call failed: java.io.IOException: No SOAP Envelope but 1 definitions; HTTP 200 OK Message processing failed. Cause: com.

  • How to get certification for MY Adapter.

    Hi guys,   Now i am working on Adapter Development.Can anyone tell me what are the conditions i should satisfy to get my Adapter certified by SAP. Regards, Gowtham K.

  • HERE maps consuming battery in background

    hii, here maps is consuming battery in the background. i can see it in the battery saver app. but the battery saver app doesn't give me the option to stop background execution of here maps. can someone check this on his/her lumia device please? can y

  • Wrong Apple ID

    Hello, A few months ago, I changed my apple ID email adress and am now having some problems with my new iPhone 5C. Under the iCloud menu on my phone, it won't let me "click" on my old ID to change it, which still reads my previous apple ID. But, when