How to compress pl/sql web services

Hi, I'm using pl/sql web services in oc4j, but sometimes the response is too large, i need to compress the SOAP XML response , how can i do that? Thanks.

What data types are you dealing with? Does the client use all the data returned? If not, you might get around with large messages by instead invoking a PL/SQL function that extracts and returns only useful data from the original PL/SQL funtion.

Similar Messages

  • How to access PL/SQL Web Services using java

    New to Webservices. Created PL/SQL Web Service using JDeveloper. Vendor is not sure how to access it using java. Can anyone please help to point in the right direction or provide some sample ?

    So if I'm correct you have already exposed a PL/SQL procedure or function as web service?
    In that case you can generate a proxy (client) for the generated web service using JDeveloper. It will generate Java code which invokes the web service.
    See the wizard in JDeveloper, it should be in the same category as the create PL/SQL web service wizard.
    Regards, Ronald

  • How can I return multiple values with PL/SQL Web Services

    Hi,
    I'm new to developping Web Services. I'm doing some tests with JDeveloper and OC4J on my local machine with a Web Services based on a PL/SQL function within a package. Right now that function only returns one value. So the xml response only has one output.
    I'd like to know how can I return multiple values with my PL/SQL Web Service. For example, if I want to return an employee's name and id? And that the xml contains two output : <employee>, <empid>?
    Reginald
    ps : I have searched the forum and I couldn't find an answer to this question, if that has been discussed AND answered before, can you please post the link? Thanks

    Alright, I actually found my answer. Since this was asked I think as a followup somewhere else I'll give my answer.
    It is very simple, all you have to do is create an Object Type and then Return that object type. After that, JDeveloper will take care of everything and you will have an xml response with multiple values. Here
    {color:#ff0000}
    create or replace TYPE person AS OBJECT
    ( id_interv number,
    first_name VARCHAR2(50),
    last_name VARCHAR2(50),
    date_birth date
    );{color}
    Then your function used in your Web Service should look something like this :
    {color:#ff0000}
    function info_emp (p_empno IN VARCHAR2) RETURN person AS
    l_emp person := person(-1,'','','');
    BEGIN
    SELECT first_name
    ,last_name
    ,emp_no
    INTO l_emp.first_name
    ,l_emp.last_name
    ,l_emp.emp_no
    FROM emp
    WHERE upper(emp_no) = upper (emp_no);
    {color}
    {color:#ff0000}
    RETURN l_emp;
    EXCEPTION WHEN NO_DATA_FOUND THEN
    l_emp := person (-1,'n/a','n/a','n/a');
    RETURN l_emp ;
    END info_emp;{color}
    {color:#ff0000}{color:#000000}After that, this is what the xml response looks like :{color}{color}
    &lt;first_name xsi:type="xsd:string"&gt;John&lt;/first_name&gt;
    &lt;last_name xsi:type="xsd:string"&gt;Doe&lt;/last_name&gt;
    &lt;emp_no xsi:type="xsd:string"&gt;0250193&lt;/emp_no&gt;

  • PL/SQL web service - how to use XML schema to define inputs/outputs?

    Hello,
    let us say I want to publish a PL/SQL web service. The package spec that I want to expose is:
    CREATE OR REPLACE PACKAGE myWebService AS
      FUNCTION loadResults(
        username   IN VARCHAR2,
        password   IN VARCHAR2,
        resultData IN XMLType)
      RETURN XMLType;
    END;When I use JDeveloper's wizard to publish my PL/SQL web service, the resulting WSDL contains this:
    <schema
        xmlns="http://www.w3.org/2001/XMLSchema"
        xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:soap11-enc="http://schemas.xmlsoap.org/soap/encoding/"
        xmlns:tns="http://uk/co/weatherbys/aapws/AAPWS.wsdl/types/"
        targetNamespace="http://uk/co/weatherbys/aapws/AAPWS.wsdl/types/"
        elementFormDefault="qualified">
        <element name="loadresultsElement">
            <complexType>
                <sequence>
                    <element name="username" type="string" nillable="true"/>
                    <element name="password" type="string" nillable="true"/>
                    <element name="resultdata" nillable="true">
                        <complexType>
                           <sequence>
                                <any/>
                             </sequence>
                        </complexType>
                    </element>
                </sequence>
            </complexType>
        </element>
        <element name="loadresultsResponseElement">
            <complexType>
                <sequence>
                    <element name="result" nillable="true">
                       <complexType>
                            <sequence>
                                <any/>
                            </sequence>
                        </complexType>
                    </element>
                </sequence>
            </complexType>
        </element>
    </schema>It is specifying that anything at all can be passed in and out from the two XMLType arguments, which is fair enough: it has no way of knowing what I am expecting and what I shall return.
    My question is, how do I tell JDeveloper that actually I want either or both of those XMLTypes to conform to a particular XML schema?

    You cannot format the date as a string, unless you do the conversion on the PL-SQL side, before you use it in your WebService mapping. It should be handled as a string.
    The only way to convert the XML from SOAP, using this encoding, into literal XML is to apply XSLT to the payload. Not sure why you would like to do this, as the payload should be consumed by another SOAP-awared stack.
    Hope this helps,
    Eric

  • Creating PL/SQL web services from PL/SQL records

    Hello
    Jdeveloper does not allow to create web services from pl/sql packages that use PL/SQL records.to do this,we have to use the jpublisher ?without using the jpublisher,if we create a webservice then the following error is displayed in the web service xml output file.
    <faultstring>Internal Server Error (Caught exception while handling request: java.rmi.RemoteException: java.sql.SQLException: ORA-06550: line 1, column 49: PLS-00181: unsupported preprocessor directive '$WS_SP_EVEN' )</faultstring>
    </env:Fault>
    Could any one suggest me, how to solve the above issue..?
    Regards
    Malathi

    Thank you, with db adapter it was working and also
    pl/sql web-services working successfully with object types.If we want to send the web-services to the client, do we need to send the entire folder that is created in the web-services folder of the external oc4j..?
    Creating the client process:
    we are using the wsdl file that is generated in the web-services and adding to the partner link to Invoke the operations of web-services. Is there any other way to invoke the webservices?Could any one please suggest me?
    Thanking you
    Malathi

  • PL/SQL Web Service

    I need Web Service from PL/SQL package but,I can not see
    All Technologies
    Business Tier
    Web Services -> PL/SQL Web Services.
    in the new Galery wizard of Jdeveloper(Studio Edition Version 11.1.1.0.1)
    Also "Publlish as Web service" menu doesn't appear when i make right click while selecting a PL/SQL package on the db connnection navigator.
    Please help me if you know the reason.

    Oracle removed this option or really good hide it in the final version of jdeveloper 11g
    But there is hope you can do it yourself with eclipselink , they have a great wiki page with all the options plus you have control how you make this ws
    Here an example to make a quickstart
    http://biemond.blogspot.com/2009/01/create-plsql-webservice-in-jdeveloper.html
    thanks Edwin

  • PL/SQL web service: question about stub

    hello,
    I'm currently learning how to work with PL/SQL Web Services.
    I have a question about stubs. The point is, I can deploy a web service to the OC4J server and it works. It also works when I create a stub following the WSDL I made with creating the PL/SQL web service. If I go to the endpoint in my webbrowser, the functionality is the same, with or without using a stub.
    My question is: what is the function of the stub?

    A stub is leveraged by a client application to communicate with a corresponding server side object (in this case, the web service implementation). If you think back to CORBA or RMI applications they follow a similar pattern.
    In the case of a web service you would use the stub to write a client application that could invoke the methods of the remote service and return the responses as java data types. The methods the stub class offers are the same as the methods of the web service interface. It's a common way for providing RPC like functionality.

  • PL/SQL Web Service problem in Oracle10g

    Hi everybody
    I try to publish PL/SQL Web Service using JDeveloper 9.0.4.0 and Oracle10g.
    But when I deploy the Web Service using 'http-web-site', error messages are:
    oracle.oc4j.admin.internal.DeployerException: Unknown site: http-web-site
    Active sites are:
    file:/D:/oracle/DS/j2ee/home/config/default-web-site.xml
         at oracle.oc4j.admin.internal.WebApplicationBinder.bindWebApp(WebApplicationBinder.java:131)
         at com.evermind.server.administration.DefaultApplicationServerAdministrator.bindWebApp(DefaultApplicationServerAdministrator.java:364)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:324)
         at com.evermind.server.rmi.RMICallHandler.run(RMICallHandler.java:124)
         at com.evermind.server.rmi.RMICallHandler.run(RMICallHandler.java:48)
         at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:192)
         at java.lang.Thread.run(Thread.java:534)
    Exit status of OC4J admin tool (-bindWebApp): 17
    Use the following context root(s) to test your web application(s):
    http://huan:????/CSE5200-PLSQLWS-context-root
    Note: JDeveloper was unable to determine the HTTP port number of the remote server for the above URL(s).
    Elapsed time for deployment: 2 minutes, 19 seconds
    When I change it to 'default-web-set', the following information is shown:
    ---- Deployment started. ---- 2004-8-31 8:50:08
    Target platform is Standalone OC4J (WSConnection).
    Wrote WAR file to D:\oracle\DS\jdev\mywork\CSE5200\PLSQLWS\WebServices.war
    Wrote EAR file to D:\oracle\DS\jdev\mywork\CSE5200\PLSQLWS\CSE5200-PLSQLWS-WS.ear
    Invoking OC4J admin tool...
    D:\oracle\DS\jdk\jre\bin\javaw.exe -jar D:\oracle\DS\j2ee\home\admin.jar ormi://huan/ admin **** -deploy -file D:\oracle\DS\jdev\mywork\CSE5200\PLSQLWS\CSE5200-PLSQLWS-WS.ear -deploymentName CSE5200-PLSQLWS-WS
    Notification ==> Application Deployer for CSE5200-PLSQLWS-WS STARTS [ 2004-08-31T08:50:32.487EST ]
    Notification ==> Undeploy previous deployment
    Notification ==> Copy the archive to D:\oracle\DS\j2ee\home\applications\CSE5200-PLSQLWS-WS.ear
    Notification ==> Unpack CSE5200-PLSQLWS-WS.ear begins...
    Notification ==> Unpack CSE5200-PLSQLWS-WS.ear ends...
    Notification ==> Initialize CSE5200-PLSQLWS-WS.ear begins...
    Notification ==> Initialize CSE5200-PLSQLWS-WS.ear ends...
    Notification ==> Initialize WebServices begins...
    Notification ==> Initialize WebServices ends...
    Notification ==> Application Deployer for CSE5200-PLSQLWS-WS COMPLETES [ 2004-08-31T08:50:45.766EST ]
    Exit status of OC4J admin tool (-deploy): 0
    D:\oracle\DS\jdk\jre\bin\javaw.exe -jar D:\oracle\DS\j2ee\home\admin.jar ormi://huan/ admin **** -bindWebApp CSE5200-PLSQLWS-WS WebServices default-web-site /CSE5200-PLSQLWS-context-root
    Exit status of OC4J admin tool (-bindWebApp): 0
    Use the following context root(s) to test your web application(s):
    http://huan:8890/CSE5200-PLSQLWS-context-root
    Elapsed time for deployment: 53 seconds
    ---- Deployment finished. ---- 2004-8-31 8:51:01
    And the Web Service still can not work. I did this before with JDeveloper 9.0.3 with Oracle9i and succeeded. Could anybody tell me how to resolve this problem. Thanks a lot.

    Thanks Frank.
    In my function package i create xml use dbms_xmldom. I save created xml into clob and return this clob in function.
    Now I want create web service that return my clob(xml).
    I try use JDevelper with PL/SQL Web Service Wizard.
    But I get wrong result (see in my first post).
    My Example xml in clob
    <test>"testvalue"</test>
    I want get responce
    HTTP/1.1 200 OK
    Content-Type: text/xml; charset=utf-8
    X-Powered-By: Servlet/2.5 JSP/2.1
    SOAPAction: "http://localhost/MyWebService1.wsdl/udoFDicnomnsXmlWs"
    Date: Thu, 28 Oct 2010 08:23:31 GMT
    X-ORACLE-DMS-ECID: 0000IjlvoFZB_6yb05nZ6F1CmJAZ000006
    Content-Length: 279812
    X-HTTPAnalyzer-RuleName: Pass through :
    <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
    <env:Header/>
    <env:Body>
    <m:udoFDicnomnsXmlWsResponse xmlns:m="http://localhost/MyWebService1.wsdl">
    <result><test>"testvalue"</test>
    </result>
    </m:udoFDicnomnsXmlWsResponse>
    </env:Body>
    </env:Envelope>
    But I get
    HTTP/1.1 200 OK
    Content-Type: text/xml; charset=utf-8
    X-Powered-By: Servlet/2.5 JSP/2.1
    SOAPAction: "http://localhost/MyWebService1.wsdl/udoFDicnomnsXmlWs"
    Date: Thu, 28 Oct 2010 08:23:31 GMT
    X-ORACLE-DMS-ECID: 0000IjlvoFZB_6yb05nZ6F1CmJAZ000006
    Content-Length: 279812
    X-HTTPAnalyzer-RuleName: Pass through :
    <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
    <env:Header/>
    <env:Body>
    <m:udoFDicnomnsXmlWsResponse xmlns:m="http://localhost/MyWebService1.wsdl">
    <result>& lt;test>&amp;quot;testvalue&amp;quot;& lt;/test>
    </result>
    </m:udoFDicnomnsXmlWsResponse>
    </env:Body>
    </env:Envelope>
    Can you advice something?
    Edited by: user10707438 on 28.10.2010 1:14
    Edited by: user10707438 on 28.10.2010 1:27

  • PL SQL Web Service with XML output - Remove the declaration from the proces

    Using JDeveloper to create PL/SQL web services it inserts the generic declaration
    <?xml version="1.0" encoding="UTF-8" ?>. I want to remove this line from the payload.
    Here is the entire payload. Why is this inserted and how do I get rid of it.
    <?xml version="1.0" encoding="UTF-8" ?>
    - <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    - <SOAP-ENV:Body>
    - <SOAP-ENV:Fault>
    <faultcode>SOAP-ENV:Server.Exception:</faultcode>
    <faultstring>java.sql.SQLException: java.sql.SQLException: ORA-04068: existing state of packages has been discarded ORA-04063: package body "FDC_API.PVR_IPS_TICKET" has errors ORA-06508: PL/SQL: could not find program unit being called ORA-06512: at line 1</faultstring>
    <faultactor>/pvr_ora-pvr_tickets-context-root/Pvr2ips</faultactor>
    </SOAP-ENV:Fault>
    </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>rvice, my payload has the

    We can generate jaxws from 11.1.2.0 onwards using This is now provided by the TopLink web service provider builder, which can be via the TopLink DBWS provider wizard from JDeveloper since the 11.1.2.0.0 release
    1.4.4 Database Web Services (DBWS)
    http://docs.oracle.com/cd/E23943_01/doc.1111/e26045/general.htm#CHDIEEHG
    Hope that heps
    Regards,
    Sunil P

  • PL/SQL Web Services

    Hello Dear Learners
    I am a very much new to SOA grounds, thats why I seek help to perform my task. My requirement is:
    I have two instances of oracle apps release 12.1.2, lets say Vis1 and Vis2. I have a custom transaction form which comprises on two tables of master & detail. Both the tables are deployed at both instances. Since I have good knowledge and working experience of pl/sql. Kindly guide me how can I insert date of Vis1 to Vis2 by using pl/sql web
    services or is there any better way instead of using pl/sql web service.
    dsReg

    What is the error?
    Did you test the PL/SQL webservice seperately?
    Regards,
    Lonneke

  • Handling exceptions in a PL/SQL Web Service

    Hi,
    I am building a JSF page which invokes some functions on a Pl/SQL web service. I am accessing this web service via a data control.
    Now, if my pl/sql procedure throws an exception, how can I propogate that exception to the UI, say display an alarm message telling the exception.
    I am not very aware of how I can propogate my exceptions from the pl/sql code to the web service itself, so could you please explain this in more detail.
    Awaiting your replies..
    Thanks
    Arvind

    Currently, PL/SQL webservice does not map SQL exceptions into webservice faults. You may be able to see the SQL error in the server fault message though.

  • How to overload method in web services ?

    hi all !
    how can i overload a web services method ? , i hear about using javax.xml.ws.RequestWrapper , but when i try to use wsimport , it say : error dupplicate method.
    this is the sample from forum :
    package my.ws;
    import javax.jws.WebMethod;
    import javax.jws.WebParam;
    import javax.jws.WebService;
    import javax.xml.ws.RequestWrapper;
    import javax.xml.ws.ResponseWrapper;
    @WebService
    //(name="HelloWS", serviceName="HelloWSService")
    public class Hello {
          * Web service operation
         @WebMethod
         @RequestWrapper(className = "com.veera.Clac.CalculatorRequest", targetNamespace = "http://Calc.veera.com/")
         @ResponseWrapper(className = "com.veera.Clac.CalculatorResponse", targetNamespace = "http://Calc.veera.com/")
         public int add(@WebParam(name = "a")
         int a, @WebParam(name = "b")
         int b) {
              // TODO implement operation
              return 0;
          * Web service operation
         @WebMethod
         @RequestWrapper(className = "com.veera.Clac.CalculatorOverloadRequest", targetNamespace = "http://CalcOverLoad.veera.com/")
         @ResponseWrapper(className = "com.veera.Clac.CalculatorOverloadResponse", targetNamespace = "http://CalcOverLoad.veera.com/")
         public String add(@WebParam(name = "v")
         String v) {
              // TODO implement operation
              return "Veera";
    }thanks

    Hi, Eric,
    Thank you for your quick reply.
    The web service I am trying to develop is basically a generic Data Access Component to bridge between SQL server and a desktop .Net application. The application will have about 3000 users from WAN, therefore we want to have a server side component to handle connection pooling etc. Because of limitation of current servers, we are asked to develop a Java Web Service, instead of MS WS.
    To make the component more reusable, I am thinking to have methods like this in the service:
    RunQueryReturnRS(String Sql, WebRowSet, rs)
    RunQueryReturnInt(String Sql, int NumRecdImpacted)
    RunStoredProcedureReturnRS(….)
    RunStoredProcedureReturnInt(….)
    ……
    You see, I would like to get whole resultset back to client, including both metadata and data in a format of generic resultset. When I paged through the Sun’s document, finding WebRowSet is claimed to be seariable, and ready for Web Service. I thought if I can use WebRowSet that will save me time to write new classes to hold resultset info and pass back to client.
    Could you please tell me if it is a feasible approach?
    Thank you.
    -Qing

  • PL/Sql Web Services - Deploy to OAS 10.1.2.3.0 - Help?

    Morning All,
    I hope that someone out there can give me some advice on how I can successfully create and deploy Web Services wrapping PL/Sql packaged functions / procedures onto our test application servers.
    I've seen that the PL/Sql Web Services creation didn't make it into the current release of 11g, so I've downloaded 10g (10.1.3.4). Our Oracle AS's are version 10.1.2.3.0 running Java 1.4.2.
    I've successfully deployed a pl/sql web service to the OC4J container that comes with Jdev 10g, but from what I've seen so far there seems to be some incompatibility with jdev 10g deploying into our OAS servers OC4J instance running 1.4.2. I've followed a few guides to get round this, but none of them seem to fully cover all the issues.
    The current state of play is that I have been able to get it to deploy, but it returns a null point exception when it defo shouldn't be, and so I'm now here asking for your help and advice to start from scratch again to make sure that i cover every single step in order to get this working - if at all possible ;-)
    So, please, can anyone either give me a link to a doc which takes me through this issue to a resolution, or give me any hints and tips to get this working?
    Thanks in Advance,
    -Roamer.
    Edited by: Roamer on Feb 19, 2009 10:31 AM (Version mistake in the title - it is 10.1.2.3.0 and not 10.1.2.2.0 :-)

    Trying a J2EE 1.4 sample for a J2EE 1.3 environment is quite difficult, J2EE 1.3 doesn't support WebServices out of the box.
    On the other hand it is not quite easy to find the 10.1.2.x samples... Either upgrade your OC4J to 10.1.3 or try these samples: http://www.oracle.com/technology/sample_code/tech/java/codesnippet/webservices/index.html
    --olaf                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

  • Testing PL/SQL Web Service Error

    I've generated a web service using JDev 10.1.2, ran it in the embedded OC4J Server. I then generated a stub to test it with, browsed to the web service wsdl file in the original project, and ran the stub. The stub project returns the error:
    SOAPException: faultCode=SOAP-ENV:Protocol; msg=Unsupported response content type &quot;text/html&quot;, must be: &quot;text/xml&quot;. Response was:
    &lt;HTML&gt;&lt;HEAD&gt;&lt;TITLE&gt;500 Internal Server Error&lt;/TITLE&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;H1&gt;500 Internal Server Error&lt;/H1&gt;&lt;PRE&gt;java.lang.NoClassDefFoundError:
    I'm not sure what I should be looking for to track this down. Is it a bug in my stub, or in my web service? In order to keep things simple, the stored procedure only takes a few strings, and I've double-checked the values and order of parameters I'm passing. Anybody have any ideas?

    I got this figured out, just blew away my projects
    and started over, and it worked. Now that I've got
    it working in a test environment, how do I get it
    into production? Is Oracle's AS the only AS you can
    use to deploy a PL/SQL web service?The OrindaBuild Plugin for JDev 10.1.2 writes Java classes to run PL/SQL that work with Apache Axis 1.1 and should work with almost any web service toolkit.
    www.orindasoft.com
    David Rolfe
    Orinda Software.

  • Problems developing a pl sql web service

    Hello, someone knows how to develop a pl sql web service to retrieve many rows from a table (NOt ONLY ONE RECORD). I need an example of the function or procedure. I'm using JDeveloper 11g and WebLogic 11g.Thanks!.

    I guess this is what you are looking for:
    http://docs.oracle.com/cd/E23943_01/web.1111/e13735/dbws.htm#CHDGJGJI
    You may want to use "REF CURSOR" for your requirement. Store the result set in a "REF CURSOR" in your webservice.
    From the JDeveloper documentation how to use PL/SQL WebServices.
    http://docs.oracle.com/cd/E24382_01/user.1112/e17455/dev_web_services.htm#CHDFHIHB
    May be you want to try using JPublisher to achieve the code for storing the results of a stored procedure
    http://docs.oracle.com/cd/E24382_01/user.1112/e17455/java_database.htm#CACJBBHH
    Arun

Maybe you are looking for