Return XML from Ajax

Hi,
I need to provide the XML tags and dynamic content from the APEX Ajax routine - to be used for the Fusioncharts. How can I return XML from the Ajax routine.
Thanks.
Andy

Andy,
Seeing how you are doing everything on load, there is really only a few changes you need to make in order for this to happen via ajax.
1. Create an ondemand process which generates only XML named GET_CHART_XML. Something like ...
declare
  l_xml             VARCHAR2 (32767);
  p_region_width    VARCHAR2 (10)    := '700';--------------------------------------
  p_region_height   VARCHAR2 (10)    := '300';-- not sure what these are here for --
  p_chart_debug     VARCHAR2 (10)    := '0';  --------------------------------------
begin
  l_xml := '<graph showNames=''1'' decimalPrecision=''0''  >' ;
  for d in (select b.proj_phase, count(*) total
              from it_proj_srvc_req a, it_proj_phase b
             where a.it_proj_phase_pk = b.it_proj_phase_pk
               and a.it_proj_phase_pk not in (10,99)
               and exists (select 'x' from it_proj_srvc_req_pers d,
                                           it_proj_srvc_group e
                                     where d.dph_pers_pk = e.mem_pers_pk
                                       and e.adm_pers_pk = :F120_DPH_PERS_PK
                                       and a.it_proj_srvc_req_pk = d.it_proj_srvc_req_pk)
                                     group by b.proj_phase)
  loop
    if d.proj_phase = 'Current' then
      l_xml := l_xml || '<set name=''' || d.proj_phase || ''' value=''' || d.total || ''' isSliced=''1''/>';
    else
      l_xml := l_xml || '<set name=''' || d.proj_phase || ''' value=''' || d.total || ''' />';
    end if;
  end loop;
  l_xml := l_xml || '</graph>';
  htp.p(l_xml);
end;2. Put this JavaScript in the HTMLHeader section of your page.
<script language="JavaScript" src="/i/themes/custom/FusionCharts/FusionChartsFree/JSClass/FusionCharts.js"></script>
<script type="text/javascript">
  function renderChart(){
    var myChart = new FusionCharts("/i/themes/custom/FusionCharts/FusionChartsFree/Charts/FCF_Pie2D.swf", "ChartId", "250", "100");
    var get = new htmldb_Get(null,$v('pFlowId'),'APPLICATION_PROCESS=GET_CHART_XML',$v('pFlowStepId'));
    get.GetAsync(function(){
      if(p.readyState == 1){
        $x('chartdiv').innerHTML = '<p>Loading Chart...</p>';
      }else if(p.readyState == 4){
        if(!p.responseText){return false;};
        myChart.setDataXML(p.responseText);
        myChart.render("chartdiv");
    get = null;
</script>3. Lastly create a button with a url target which points to "javascript: renderChart()".
I was not able to actually test this as I do not have access to the java script dependencies for the flash chart. so I apologize if the JS has a typo in there.
Hope this gets you started in the right direction.
Tyson Jouglet

Similar Messages

  • Return XML from REF CURSOR

    It appears to be fairly straight-forward to get XML from a SQL query using the XML SQL Utility.
    Is it possible to use this utility (or another) to get XML from a cursor variable as well? I would like to generate overloaded get_xml functions in a PL/SQL package that will accept either SQL or a weak type REF CURSOR and return XML.

    Thanks for the help. Actually, I just bought your book and was getting ready to do some research. This should get me pointed in the right direction.
    Does the PL/SQL API lack this functionality? I wasn't sure whether to implement this in PL/SQL or Java, but the decision may be made for me...

  • Returning xml from a struts action to be used by a ajax client

    Hello,
    I'm having issues with my ajax call on a WAS server. It functions correctly when run locally on tomcat and WSAD servers.
    It looks like the response isnt comming back when the ajax call is made.
    My java struts action does the following:
            String xml = .....
            aResponse.setContentType("text/xml");            
            aResponse.getWriter().write(xml);
            aResponse.getWriter().flush();
           return null;Is this the correct way to pass back a response?
    do I have to set the header? if so, what should it be?
    Thanks,
    Con.

    A JSP is usually easier to construct the XML since you have looping etc. - otherwise OK.

  • Return XML from MVC WebAPI Web Service

    The tutorials to create a web service using MVC WebAPI (frmaework4.5) in VS 2013  is touted as being "very simple" to return JSON or XML.
    But then, all you get is JSON. When you want to return a plain ole' string of XML ... there is no clear documentation. I see a bunch of posts where people are referencing the ActionResult method ... which is not in the APIController class... so that implies
    to me that I need to roll my own from the Controller class. That doesn't seem right to me.
    So ... how does one return an XML string from an MVC WebApi application?
    * the list of "questions similar to yours" that this forum presents me either:  a) are for ASMX in VS 2008 or b) do not work.
    Any direction to some documentation is appreciated.
    Thanks

    Hi,
    If this issue is related to MVC, you could ask this question in the ASP.NET forum:
    http://forums.asp.net. If then, you could get an answer more quickly and professional. Maybe the
    WCF, ASMX and other Web Services forum will be better for this issue. Thanks for your cooperation.
    Have a nice day,
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • Returning XML from CF for xmlHttpRequest

    Greetings,
    Not sure what I'm doing wrong here, but I can't seem to get
    a .cfm page to return the necessary xml for use in my
    xmlHttpRequest javascript code. I know the problem doesn't exist
    within my javascript code......if I build the URL to connect to and
    point it at an actual XML document, all is well.....I get a proper
    XML DOM document back and I can do what I want. However, if I point
    it at a .cfm page that is generating XML, it doesn't work.
    I've tried a few different ways (<cfcontent> etc)of
    trying to get CF to return the results of the .cfm page as XML, but
    it's not working.
    Suggestions?

    Well, there you go. Turns out there's some slightly
    contradictory info in the help for <cfxml>. In the main help
    for the <cfxml> tag, there's no mention of the fact that you
    should not use the standard <?xml version="1.0" etc> xml
    processing directive when you're using that tag. It is, however,
    mentioned on one of the associated help pages. So, now that I've
    removed the directive, all is well.

  • Trouble accessing dynamic XML from API with a CFC

    Please see my example at
    http://67.199.18.39/test.html
    and view source (to big to post here). I am returning XML from a
    dynamic call to an API through a ColdFusion CFC.
    Search for something generic like Dog. Click Go. I display
    the XML for you to view. I have tried many different XMLList
    dataproviders but can't get anything to work.
    Can someone point out the "errors" of my ways?
    Thanks.

    Turns out it was a namespace issue. I found the answer from a
    Bruce Phillips tutorial at
    http://www.brucephillips.name/blog/index.cfm/2006/12/5/Processing-XML-in-Flex-20-Using-The -For-Each-Statement-And-The-Descendent-Accessor--Operator
    I had to add:
    private namespace yahooNS = "urn:yahoo:prods";
    use namespace yahooNS;

  • Calling StroreProcedure contain XML as Input and store proce return XML as out-BizTalk

    I have a requirement in BizTalk that
    - I will receive XML from Source and i need to submit this XML data in  SQL storeprocedure  as a parameters and submit data
    Ex: My_SP(myXML xml Input,myXML1 xml OUT)
    Could you please help me how to call storeprocedure and submit XML and how to retrieve XML from SP.

    One of the way is to return xml from stored procedure instead of getting a typed schema
    You can have xml auto defined at stored procedure something like below stored procedure.
    SELECT [Employee_ID] ,[Name] ,[DOJ] ,[Designation] ,[Job_Description] ,cast([Rating] as varchar(100)) as Rating ,[Salary] ,[Last_Modified] ,[Status] ,[Address]
    FROM [Adapt_Doc].[dbo].[Employee] for xml auto, xmlschema
    After that you can directly assign the message to the typed schema something like below
    MessageTypedSQL=MessageUntypedSQl;
    For reference you can look into below MSDN articles
    SQL and XML: Use XML to Invoke and Return Stored Procedures
    Executing Stored Procedures Having a FOR XML Clause
    Thanks
    Abhishek

  • JDeveloper and PL/SQL queries which return XML

    Hi,
    I need to deploy WS with JDeveloper. I have an Oracle9i database which I query with PL/SQL. How can I return XML from my PL/SQL queries? I know I can use SQLX to return XML datatypes, but JDeveloper doesn't seem to be compatible. There is also XSQL, but I don't think JDeveloper allows you to publish this as a web service.
    Any help would be greatly appreciated!!! Thanks!!!!

    The following function should work for what you are trying to do.
    htp.p(htf.escape_sc(:P1_ITEM));To escape columns from the database just include it in your select statement:
    SELECT htf.escape_sc(COLUMN_NAME) alias
      FROM TABLETo escape items on your apex page:
    INSERT INTO table
               (COLUMN_NAME)
         VALUES(htf.escape_sc(:P1_ITEM))Good Luck,
    Tyson
    Edited by: Tyson Jouglet on Nov 25, 2008 4:12 PM

  • Returning XML Data from a database

    Ok, just got the new DW CS3 and really want to begin using
    the built in Spry capabilitites. All of the examples I've seen for
    populating the datasets with XML data are based on referencing a
    static XML file. I want to query my database and return XML data to
    a Spry Table. How do I accomplish this? I know how to perform the
    query and retrun the data in an XML format (ColdFusion) but I can't
    tell the spry dataset to use this. HELP!!

    Well, that's the trick... I can't point to a testing server
    (i.e. Application interface) because we aren't permitted to have
    the RDS login where I work. (They haven't bothered to configure the
    CF server for restricting access) I have to manually create all
    connections and queries. I'm currenlty using the exact format in
    the example page you provided to return the data in an XML format
    but when I point to that file as my datasource I get nothing
    displayed on the page. The file that performs the query and returns
    the data is in a separate file from the one I'm trying to use the
    Spry table in. When I use this same query file for an Ajax call to,
    say, populate a listbox or pulldown menu it works fine, but I can't
    get it to work with the Spry dataset.

  • Returning XML String From Servlet

              Is there a simple way to disable the HTML character escaping when returning
              a string from a servlet. The returned string contains well formed XML, and
              I don't want the tags converted to > and < meta characters in the
              HTTP reply.
              The code is basically "hello world", version 7.0 SP2.
              Thanks
              > package xxx.servlet;
              >
              > import weblogic.jws.control.JwsContext;
              >
              >
              > /**
              > * @jws:protocol http-xml="true" form-get="false" form-post="false"
              > */
              > public class HelloWorld
              > {
              > /** @jws:context */
              > JwsContext context;
              >
              > /**
              > * @jws:operation
              > * @jws:protocol http-xml="false" form-post="true" form-get="false" soap-s
              tyle="document"
              > * @jws:return-xml xml-map::
              > * <HelloWorldResponse xmlns="http://www.xxx.com/">
              > * {return}
              > * </HelloWorldResponse>
              >
              > * ::
              > * @jws:parameter-xml xml-map::
              > * <HelloWorld xmlns="http://www.xxx.com/">
              > * <ix>{ix}</ix>
              > * <contents>{contents}</contents>
              > * </HelloWorld>
              >
              > * ::
              > */
              > public String HelloWorld(String s)
              > {
              > return "<a> xyz </a>";
              > }
              > }
              

              Radha,
              We have a client/server package which speaks SOAP over a
              streaming HTTP channel for which we are writing a WebLogic
              servlet. For reasons of efficiency, we want to deserialize
              only the very top-level tags of the messages as they pass
              through the servlet. Yes, in theory, we should probably
              deserialize and validate the entire message contents...
              When we add support for other clients, we will fully
              deserialize inside those servlets.
              I have not looked any further into how to stop the inner
              tags from being escaped yet -- it is an annoyance more than
              a disaster, since the client handle meta escapes.
              My current guess is to use ECMAScript mapping...
              -Tony
              "S.Radha" <[email protected]> wrote:
              >
              >"Tony Hawkins" <[email protected]> wrote:
              >>
              >>Is there a simple way to disable the HTML character escaping when returning
              >>a string from a servlet. The returned string contains well formed XML,
              >>and
              >>I don't want the tags converted to > and < meta characters in the
              >>HTTP reply.
              >>
              >>The code is basically "hello world", version 7.0 SP2.
              >
              >>
              >>Thanks
              >>
              >>> package xxx.servlet;
              >>>
              >>> import weblogic.jws.control.JwsContext;
              >>>
              >>>
              >>> /**
              >>> * @jws:protocol http-xml="true" form-get="false" form-post="false"
              >>> */
              >>> public class HelloWorld
              >>> {
              >>> /** @jws:context */
              >>> JwsContext context;
              >>>
              >>> /**
              >>> * @jws:operation
              >>> * @jws:protocol http-xml="false" form-post="true" form-get="false"
              >>soap-s
              >>tyle="document"
              >>> * @jws:return-xml xml-map::
              >>> * <HelloWorldResponse xmlns="http://www.xxx.com/">
              >>> * {return}
              >>> * </HelloWorldResponse>
              >>>
              >>> * ::
              >>> * @jws:parameter-xml xml-map::
              >>> * <HelloWorld xmlns="http://www.xxx.com/">
              >>> * <ix>{ix}</ix>
              >>> * <contents>{contents}</contents>
              >>> * </HelloWorld>
              >>>
              >>> * ::
              >>> */
              >>> public String HelloWorld(String s)
              >>> {
              >>> return "<a> xyz </a>";
              >>> }
              >>> }
              >>
              >>
              >Hi Tony,
              >
              > Can you let me know for what purpose you want to disable the
              >HTML character
              >escaping.In case if you
              >
              >have tried this using someway,pl. let me know.
              >
              >rgds
              >Radha
              >
              >
              

  • XmlHttpRequest AJAX not returning message from COMET server

    I have the following COMET client javascript code:
    function getResponse() {
    document.getElementById("_receivedMsgLabel").innerHTML += "getResponse() called.<br/>";
    if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
    receiveReq.open("GET", "http://L45723:1802?callback=testcallback", true); //must use this URL at work.
    receiveReq.onreadystatechange = handleReceiveMessage;
    alert("handleReceiveMessage assigned to onreadystatechange event.");
    receiveReq.overrideMimeType("text/x-json");
    receiveReq.timeout = 100000;
    var currentDate = new Date();
    var sendMessage = JSON.stringify({
    SendTimestamp: currentDate,
    Message: "Message 1",
    Browser: navigator.appName,
    OriginUrl: document.URL
    var sendMessage = "SendTimestamp=" + currentDate + "&Message=Message1&Browser=" + navigator.userAgent;
    alert("JSON message created. About to send...");
    receiveReq.send(sendMessage);
    alert("Message sent.");
    //function for handling the return message from Comet
    function handleReceiveMessage() {
    document.getElementById("_receivedMsgLabel").innerHTML += "Status=" + receiveReq.status;
    document.getElementById("_receivedMsgLabel").innerHTML += "responseText=" + receiveReq.responseText;
    if (receiveReq.readyState == 4 && receiveReq.status == 200) {
    document.getElementById("_receivedMsgLabel").innerHTML += "Message received!<br/>";
    var status = receiveReq.status;
    var txt = receiveReq.responseText;
    document.getElementById("_receivedMsgLabel").innerHTML += txt + "<br/>";
    mTimer = setTimeout("getResponse();", 0);
    getResponse();
    The GET request is sent and received by the COMET server, which sends the response back when I choose to. The handleReceiveMessage() function is called, but the message the server sent is not in the xmlHttpRequest.responseText property.
    Why?

    I suggest continuing the discussion in your thread on mozillaZine, since this site focuses more on end-user support.
    [http://forums.mozillazine.org/viewtopic.php?f=25&t=2480435 xmlHttpRequest object - mozillaZine Forums]

  • Facing problem while going to  catch return result from web-services.

    Hi everybody,
    I am new to BPEL. I am facing problem while going to catch the attributes of resultsets returning from web-services(QAS). As far as my knowledge, two types of results it should return - XML entities and another is attributes which is coming as the part of XML entitites. I am able to catch the XML entities, but can't catch the attributes under it. Even, I am not able to see whether web-services returning something within that field.
    When, I tried to catch the attribute and store to a temporary varilable using the following code:
    *<assign name="AssignQASDoGetAddress1">*
    *<copy>*
    *<from variable="InvokeQAS_DoSearch_OutputVariable"*
    part="body"
    query="/ns6:QASearchResult/ns6:QAPicklist/ns6:PicklistEntry/@PostcodeRecoded"/>
    *<to variable="temp"/>*
    *</copy>*
    *</assign>*
    but, I am facing the following selectionFailure errors after running it:
    *"{http://schemasxmlsoap.org/ws/2003/03/business-process/}selectionFailure" has been thrown.*
    -<selectionFailure xmlns="http://schemasxmlsoap.org/ws/2003/03/business-process/">
    -<part name="summary">
    *<summary>*
    empty variable/expression result.
    xpath variable/expression expression "bpws:getVariableData('InvokeQAS_DoSearch_OutputVariable', 'body', '/ns6:QASearchResult/ns6:QAPicklist/ns6:PicklistEntry/@PostcodeRecoded')" is empty at line 269, when attempting reading/copying it.
    Please make sure the variable/expression result "bpws:getVariableData('InvokeQAS_DoSearch_OutputVariable', 'body', '/ns6:QASearchResult/ns6:QAPicklist/ns6:PicklistEntry/@PostcodeRecoded')"is not empty.
    *</summary>*
    *</part>*
    *</selectionFailure>*
    Getting this error it seems to me that web-service is returning nothing, but, it returns something as it has been catched using a method called isPostcodeRecoded() Java Code in Oracle ADF. This method has been used as it should return boolean whereas for catching the xml entities using java code we used the method like getPostcode(), getMoniker().
    For your information, we are using Jdeveloper as the development tool for building the BPEL process.
    Am I doing any syntax error. Please consider it as urgent and provide me asolution.
    Thanks in advance.
    Chandrachur.

    Thanks Dave and Marc, for your suggestions. Actually what I found is QAS web-service is returning nothing as attributes when the attributes are set to the default value. For example, following is the part of the wsdl of the result which QAS webservice returns.
    <xs:element name="QASearchResult">
    - <xs:complexType>
    - <xs:sequence>
    <xs:element name="QAPicklist" type="qas:QAPicklistType" minOccurs="0" />
    <xs:element name="QAAddress" type="qas:QAAddressType" minOccurs="0" />
    </xs:sequence>
    <xs:attribute name="VerifyLevel" type="qas:VerifyLevelType" default="None" />
    </xs:complexType>
    </xs:element>
    <xs:complexType name="QAPicklistType">
    - <xs:sequence>
    <xs:element name="FullPicklistMoniker" type="xs:string" />
    <xs:element name="PicklistEntry" type="qas:PicklistEntryType" minOccurs="0" maxOccurs="unbounded" />
    <xs:element name="Prompt" type="xs:string" />
    <xs:element name="Total" type="xs:nonNegativeInteger" />
    </xs:sequence>
    <xs:attribute name="AutoFormatSafe" type="xs:boolean" default="false" />
    <xs:attribute name="AutoFormatPastClose" type="xs:boolean" default="false" />
    <xs:attribute name="AutoStepinSafe" type="xs:boolean" default="false" />
    <xs:attribute name="AutoStepinPastClose" type="xs:boolean" default="false" />
    <xs:attribute name="LargePotential" type="xs:boolean" default="false" />
    <xs:attribute name="MaxMatches" type="xs:boolean" default="false" />
    <xs:attribute name="MoreOtherMatches" type="xs:boolean" default="false" />
    <xs:attribute name="OverThreshold" type="xs:boolean" default="false" />
    <xs:attribute name="Timeout" type="xs:boolean" default="false" />
    </xs:complexType>
    <xs:complexType name="PicklistEntryType">
    - <xs:sequence>
    <xs:element name="Moniker" type="xs:string" />
    <xs:element name="PartialAddress" type="xs:string" />
    <xs:element name="Picklist" type="xs:string" />
    <xs:element name="Postcode" type="xs:string" />
    <xs:element name="Score" type="xs:nonNegativeInteger" />
    </xs:sequence>
    <xs:attribute name="FullAddress" type="xs:boolean" default="false" />
    <xs:attribute name="Multiples" type="xs:boolean" default="false" />
    <xs:attribute name="CanStep" type="xs:boolean" default="false" />
    <xs:attribute name="AliasMatch" type="xs:boolean" default="false" />
    <xs:attribute name="PostcodeRecoded" type="xs:boolean" default="false" />
    <xs:attribute name="CrossBorderMatch" type="xs:boolean" default="false" />
    <xs:attribute name="DummyPOBox" type="xs:boolean" default="false" />
    <xs:attribute name="Name" type="xs:boolean" default="false" />
    <xs:attribute name="Information" type="xs:boolean" default="false" />
    <xs:attribute name="WarnInformation" type="xs:boolean" default="false" />
    <xs:attribute name="IncompleteAddr" type="xs:boolean" default="false" />
    <xs:attribute name="UnresolvableRange" type="xs:boolean" default="false" />
    <xs:attribute name="PhantomPrimaryPoint" type="xs:boolean" default="false" />
    </xs:complexType>
    here the attributes like FullAddress, PostcodeRecodedare , etc. are not being return by the web-service when it is getting the default value false. But, if it gets true then , it is being displayed at the BPEL console.
    Do you have any idea how can I catch the attributes and its value even when it gets the default value which is already set. Previously, it was returning(it was not being displayed at the console).
    Thanks once again for your valuable suggestions...!!!
    Chandrachur.

  • Remote Object - not able to get the returned value from java method

         Hi ,
    I am developing one sample flex aplication that connects to the java code and displays the returned value from the
    java method in flex client. Here I am able to invoke the java method but not able to collect the returned value.
    lastResult is giving null .  I am able to see the sysout messages in server console.
    I am using flex 3.2 and blazeds server  and java 1.5
    Here is the code what I have written.
    <?xml version="1.0" encoding="utf-8"?><mx:WindowedApplication  xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" backgroundColor="#FFFFFF" initialize="initApp()">
     <mx:Script><![CDATA[
    import mx.controls.Alert; 
    import mx.binding.utils.ChangeWatcher; 
    import mx.rpc.events.ResultEvent; 
    import mx.messaging.*; 
    import mx.messaging.channels.* 
    public function initApp():void { 
         var cs:ChannelSet = new ChannelSet(); 
         var customChannel:Channel = new AMFChannel("my-amf", "http://localhost:8400/blazeds/messagebroker/amf");     cs.addChannel(customChannel);
         remoteObj.channelSet = cs;
    public function writeToConsole():void {      remoteObj.writeToConsole(
    "hello from Flash client");
          var returnedVal:String = remoteObj.setName().lastResult;     Alert.show(returnedVal);
    //[Bindable] 
    // private var returnedVal:String; 
    ]]>
    </mx:Script>
    <mx:RemoteObject id="remoteObj" destination="sro" /> 
    <mx:Form width="437" height="281">
     <mx:FormItem>  
    </mx:FormItem>  
    <mx:Button label="Write To Server Console" click="writeToConsole()"/>
     </mx:Form>
     </mx:WindowedApplication>
    Java code
    public  
         public SimpleRemoteObject(){  
              super();     }
      class SimpleRemoteObject { 
         public void writeToConsole(String msg) {          System.out.println("SimpleRemoteObject.write: " + msg);     }
         public String setName(){          System.
    out.println("Name changed in Java"); 
              return "Name changed in Java";
    And I have configured destination in  remote-config.xml
    <destination id="sro">
       <properties>    
        <source>SimpleRemoteObject</source>
        <scope>application</scope>
       </properties>
      </destination>
    Please help me .

    You are not able to get the returned value because if you see the Remote object help you will realise you have to use result="resultfn()" and fault = "faultfn()"
    In this you define what you wish to do.
    More importantly in the remote object you need to define which method you wish to call using the method class like this
    <mx:RemoteObject id="remoteObj" destination="sro" result="r1" fault="f1"  >
         <Method name="javaMethodName" result="r2" fault="f2"/>
    <mx:RemoteObject>
    r2 is the function where you get the result back from java and can use it to send the alert.

  • Calling Web Service passing xml from Oracle Forms

    Hello,
    I need to call a .net web service from Oracle Forms that passes in xml data and returns xml data.
    I have seen several examples of how to create a wrapper in jdev and then to import the code
    into forms. I just have not seen any examples that are passing parmameters especially not xml
    as a parameter and that have an active wsdl that I can see how it relates to the code created.
    I have a wrapper but cannot figure out where and what notation to use to include passing in
    an xml object.
    Does anyone have an example passing in xml where the wsdl is still available to see?'
    Forms version 10.1.2.0.2. Jdev 10.1.3.4
    Thanks,
    Linda
    Edited by: lboyce on Jan 5, 2009 2:30 PM

    Also here you have several options...
    1. you can make a PJC (bean) which include a webservice stub generated with axis (you can make a stub and also test a webservice with this tool: www.soapui.org)..
    2. you can make a database webservice with JPublisher and then just call a pl/sql wrapper for this webservice
    4. you can call a webservice with java api (HttpsURLConnection, HttpURLConnection or with apache HTTPClient api) from your PJC for example:
    the code below is used as java stored procedure to call a .net webservice on https
    ====================================
    public static int getPStopnja(String polica, String reg_oznaka,
    String ime_osiguranika,
    String naziv_osiguranika,
    String leasing,
    String[] doc) {
    String l_polica="";
    String l_reg_oznaka="";
    String l_ime_osiguranika="";
    String l_naziv_osiguranika="";
    String l_leasing ="";
    URL url = null;
    HttpsURLConnection conn = null;
    BufferedReader br = null;
    String lineIn = null;
    StringBuffer sb = new StringBuffer();
    OutputStream os = null;
    int rc = 0;
    //kontrole
    l_polica = polica==null ? "":polica;
    l_reg_oznaka = reg_oznaka==null ? "": reg_oznaka;
    l_ime_osiguranika = ime_osiguranika==null ? "": ime_osiguranika;
    l_naziv_osiguranika = naziv_osiguranika==null ? "": naziv_osiguranika;
    l_leasing = leasing==null ? "": leasing;
    String body = "&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;";
    body += "&lt;soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:web=\"https://services.huo.hr/web_ao/\"&gt;";
    body += "&lt;soapenv:Header/&gt;";
    body += "&lt;soapenv:Body&gt;";
    body += "&lt;web:get_pstupanj&gt;";
    body += "&lt;web:param_in&gt;";
    body += "&lt;web:polica&gt;"+l_polica+"&lt;/web:polica&gt;";
    body += "&lt;web:reg_oznaka&gt;"+l_reg_oznaka+"&lt;/web:reg_oznaka&gt;";
    body += "&lt;web:ime_osiguranika&gt;"+l_ime_osiguranika+"&lt;/web:ime_osiguranika&gt;";
    body += "&lt;web:naziv_osiguranika&gt;"+l_naziv_osiguranika+"&lt;/web:naziv_osiguranika&gt;";
    body += "&lt;web:leasing&gt;"+l_leasing+"&lt;/web:leasing&gt;";
    body += "&lt;/web:param_in&gt;";
    body += "&lt;/web:get_pstupanj&gt;";
    body += "&lt;/soapenv:Body&gt;";
    body += "&lt;/soapenv:Envelope&gt;";
    SSLContext sslContext = null;
    try {
    sslContext = SSLContext.getInstance("TLS");
    X509TrustManager[] xtmArray = new X509TrustManager[|http://forums.oracle.com/forums/] { xtm };
    sslContext.init(null, xtmArray, new java.security.SecureRandom());
    } catch (GeneralSecurityException gse) {
    doc[0] = gse.toString();
    return -1;
    if (sslContext != null) {
    conn.setDefaultSSLSocketFactory(sslContext.getSocketFactory());
    try {
    conn.setDefaultHostnameVerifier(hnv);
    } catch (Exception ex) {
    doc[0] = ex.toString();
    return -1;
    try {
    URL st = new URL("https://services.huo.hr/web_ao/web_ao.asmx");
    conn = (HttpsURLConnection)st.openConnection();
    conn.setRequestMethod("POST");
    conn.setRequestProperty("Host", "services.huo.hr");
    conn.setRequestProperty("Content-Length", "" + body.length());
    conn.setRequestProperty("SOAPAction",
    "\"https://services.huo.hr/web_ao/get_pstupanj\"");
    conn.setRequestProperty("Content-Type", "text/xml;charset=UTF-8");
    conn.setDoOutput(true);
    OutputStreamWriter wr =
    new OutputStreamWriter(conn.getOutputStream());
    wr.write(body);
    wr.flush();
    BufferedReader in =
    new BufferedReader(new InputStreamReader(conn.getInputStream()));
    String inputLine;
    while ((inputLine = in.readLine()) != null) {
    sb.append(new String(inputLine.getBytes(),"UTF-8"));
    in.close();
    //System.out.println(new String(sb.toString().getBytes(),"ISO8559_2"));
    doc[0] = sb.toString();
    return 0;
    } catch (Exception e) {
    doc[0] = e.toString() + " ===&gt; " + body + " ==&gt;length= " + body.length();
    return -1;
    ====================================
    best regards
    Edited by: Peterv6i on Jan 6, 2009 8:34 AM
    Edited by: Peterv6i on Jan 6, 2009 8:40 AM

  • Why returning string from java stored function failed ?  HELP ME, PLEASE

    Hi everybody,
    I created java stored function: it's doing http post, parsing xml from http reply, and returning string result.
    Sometimes, it doesn't return any value. What can be a reason ?
    The high level procedure, has following form:
    class SBE {
    public static String call(String arg0) {
    SBE sbe=new SBE("d:\\oracle\\ora81\\network\\log\\SBE.log");
    String result=SBEParser.go(sbe.sendRequest(arg0, ""), sbe.logger);
    sbe.logger.log(result);
    sbe.logger.log("Finish SBE intetraction");
    return result;
    PLSQL wrapper has a simple form:
    create or replace package PG_SBE as
    function CALL(arg0 in varchar2) return varchar2;
    end;
    create or replace package body PG_SBE as
    function CALL(arg0 varchar2) return varchar2 as language java name 'SBE.call(java.lang.String) return java.lang.String';
    end;
    In log file ("d:\\oracle\\ora81\\network\\log\\SBE.log"), I can find message :
    "Finish SBE intetraction"
    but query:
    select pg_sbe.call("any argument") from dual;
    doesn't finish.
    What can be a reason ? What can I do to trace stage of convertion java string to varchar ?
    Please help me...
    Best regards
    Marek

    <BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by Stefan Fdgersten ([email protected]):
    Maybe your call is wrong... Shouldn't there be a "?" instead of "1"?
    Your code:
    String myquery = "begin :1 := jspTest; end;";
    I provide my (working) call from java as an example. Maybe it is of any help... :)
    import java.sql.*;
    import oracle.jdbc.driver.*;
    public Vector getAllHosts() throws SQLException {
    //return getHosts(false, -1);
    Connection conn = null;
    CallableStatement cs = null;
    Vector hostV = new Vector();
    try {
    conn = getConnection();
    String query = "{ ? = call curTestPkg.curTestFunc}";
    cs = conn.prepareCall(query);
    cs.registerOutParameter(1, OracleTypes.CURSOR);
    cs.execute();
    ResultSet rs = ((OracleCallableStatement)cs).getCursor(1);
    while (rs.next()) {
    Host host = new Host(
    rs.getInt("hostid")
    , rs.getString("name")
    , rs.getString("descr")
    , rs.getString("os"));
    hostV.add(host);
    cs.close();
    return hostV;
    } finally {
    close(conn, cs);
    <HR></BLOCKQUOTE>
    hi Stefan thanx.....even after changing the call statement i get the same error. i changed query string as...
    String myquery = "{ ? = call jspTest}";
    CallableStatement cst = con.prepareCall(myquery);
    Can u please check out my call sepc that i have written in pl/sql and plz let me know it there is any error in that.
    PS : THIS IS THE FIRST TIME I AM WORKING WITH PL/SQL AND IT IS URGENT

Maybe you are looking for