Consuming SOAP Web Services

OK, I have a web service that I am consuming in CF9. I am able to hit the wsdl with SOAPUI and see the results. The results come back as XML. Basically, it displays a list of rooms we use as meetings and show the time that they are reserved. Here's the CF code I wrote for him:

< cfinvoke

" webservice =" http://DWC-dreiman-w7e/WSExchangeMeetingRooms/Exchange.asmx?WSDL"" "" "

method = "FindResourceDetailForDay".

returnvariable = "FindResourceDetailForDayResponse" >

< cfinvokeargument name = value 'c' = "Deerwood" >

< cfinvokeargument name = value "d" = "" >

< / cfinvoke >

< cfoutput > value Test return #FindResourceDetailForDayResponse # < / cfoutput >

However, this code returns this: Test value returns org.tempuri.FindResourceDetailForDayResponseFindResourceDetailForDayResult@13d9efc

The information that SoapUI refers to the XML format is the following:

< xmlns:msdata = diffgr:diffgram "" urn: schemas-microsoft-com: xml-msdata "xmlns:diffgr =" urn: schemas-microsoft-com: XML-diffgram-v1 ">"

< calendar xmlns = "" >

< Dwc-Hall-02 diffgr: ID = "Dwc-room-021" msdata:rowOrder = "0" diffgr: hasChanges = "Insert" >

< StartTime > 06/10/2010-11:00 < / StartTime >

< EndTime > 06/10/2010 12:00 < / EndTime >

Busy < BusyType > < / BusyType >

Meeting of Construction < object > < / topic >

< location / >

< IsException > False < / IsException >

< IsMeeting > False < / IsMeeting >

< IsPrivate > false < / IsPrivate >

< IsRecurring > false < / IsRecurring >

< / Dwc-Hall-02 >

< Dwc-room-01 diffgr: ID = "Dwc-room-011" msdata:rowOrder = "0" diffgr: hasChanges = "Insert" >

< StartTime > 06/10/2010 09:00 < / StartTime >

< EndTime > 06/10/2010-11:00 < / EndTime >

Busy < BusyType > < / BusyType >

the management meeting < object > < / topic >

< location / >

< IsException > False < / IsException >

< IsMeeting > False < / IsMeeting >

< IsPrivate > false < / IsPrivate >

< IsRecurring > false < / IsRecurring >

< / Dwc-room-01 >

< Dwc-room-01 diffgr: ID = 'Dwc-room-012' msdata:rowOrder = '1' diffgr: hasChanges = "Insert" >

< StartTime > 06/10/2010 12:00 < / StartTime >

< EndTime > 06/10/2010 14:00 < / EndTime >

Busy < BusyType > < / BusyType >

Strategic conversation < object > < / topic >

< location / >

< IsException > False < / IsException >

< IsMeeting > False < / IsMeeting >

< IsPrivate > false < / IsPrivate >

< IsRecurring > false < / IsRecurring >

< / Dwc-room-01 >

< Dwc-room-01 diffgr: ID = 'Dwc-room-013' msdata:rowOrder = '2' diffgr: hasChanges = "Insert" >

< StartTime > 06/10/2010 14:00 < / StartTime >

< EndTime > 06/10/2010 15:00 < / EndTime >

Busy < BusyType > < / BusyType >

Meeting of the Board of the < object > < / topic >

< location / >

< IsException > False < / IsException >

< IsMeeting > False < / IsMeeting >

< IsPrivate > false < / IsPrivate >

< IsRecurring > false < / IsRecurring >

< / Dwc-room-01 >

< / calendar >

< / diffgr:diffgram >

How can I go on access to information in the parent/child of the XML nodes? This is my first time with complex Web services in Coldfusion.

SOAP means that you will need to send an item XML SOAP web service. Do something like:


http://DWC-dreiman-w7e/WSExchangeMeetingRooms/Exchange.asmx?WSDL">
        


   
         http://schemas.xmlsoap.org/SOAP/envelope/"container ="http://www.w3.org/2001/XMLSchema"" xmlns: xsi = "http://www.w3.org/2001/XMLSchema-instance" > ""
            
                 http://schemas.xmlsoap.org/SOAP/encoding/"xmlns:ns ="http://your_own_namespace_url">."
                        Alexander
                      Alexandre test message 
                 

             

         

   


       
           
           
           
           
           
       

       

#xmlFormat (cfhttp.fileContent) #.


       
   
       
   

Tags: ColdFusion

Similar Questions

  • Consume a Web service using javax.microedition.xml.rpc.Operation

    Requirement. Consume a Web Service using native libraries of Blackberry.

    Target WebService: http://ws.cdyne.com/WeatherWS/Weather.asmx

    WebService of the operation: http://ws.cdyne.com/WeatherWS/Weather.asmx?op=GetCityWeatherByZIP

    Environment: Eclipse JDE 1.3.0 with BB SDK Enterprise Server BB 5.0.0

    First Guide of: http://blog.bayestech.com/?tag=blackberry

    1 Java Stub

    public interface IWeatherServiceZip
    {
        public String getWeatherServiceByZip(String zipCode) throws java.rmi.RemoteException;
    
    }
    

    2. Service Java class

    import java.rmi.RemoteException;
    import javax.microedition.xml.rpc.ComplexType;
    import javax.microedition.xml.rpc.Element;
    import javax.microedition.xml.rpc.Operation;
    import javax.microedition.xml.rpc.Type;
    import javax.xml.namespace.QName;
    import javax.xml.rpc.JAXRPCException;
    
    import com.lm.bb.ws.interfaces.IWeatherServiceZip;
    
    /**
     * @author lmo0
     *
     */
    public class WeatherServiceZip implements IWeatherServiceZip, javax.xml.rpc.Stub
    {
        protected static final QName _qname_operation_GetCityWeatherByZIP = new QName("http://ws.cdyne.com/WeatherWS", "GetCityWeatherByZIP");
        protected static final QName _qname_GetCityWeatherByZIPResponse = new QName("http://ws.cdyne.com/WeatherWS", "GetCityWeatherByZIPResponse");
        protected static final QName _qname_GetCityWeatherByZIP = new QName("http://ws.cdyne.com/WeatherWS", "GetCityWeatherByZIP");
        protected static final Element _type_GetCityWeatherByZIP;
        protected static final Element _type_GetCityWeatherByZIPResponse;
    
        private String[] _propertyNames;
        private Object[] _propertyValues;
    
        public WeatherServiceZip()
        {
            _propertyNames = new String[]
            { ENDPOINT_ADDRESS_PROPERTY };
            _propertyValues = new Object[]
            { "http://ws.cdyne.com/WeatherWS/Weather.asmx" };
        }
    
        public void _setProperty(String name, Object value)
        {
            int size = _propertyNames.length;
            for (int i = 0; i < size; ++i)
            {
                if (_propertyNames[i].equals(name))
                {
                    _propertyValues[i] = value;
                    return;
                }
            }
            String[] newPropNames = new String[size + 1];
            System.arraycopy(_propertyNames, 0, newPropNames, 0, size);
            _propertyNames = newPropNames;
            Object[] newPropValues = new Object[size + 1];
            System.arraycopy(_propertyValues, 0, newPropValues, 0, size);
            _propertyValues = newPropValues;
    
            _propertyNames[size] = name;
            _propertyValues[size] = value;
        }
    
        public Object _getProperty(String name)
        {
            for (int i = 0; i < _propertyNames.length; ++i)
            {
                if (_propertyNames[i].equals(name))
                {
                    return _propertyValues[i];
                }
            }
            if (ENDPOINT_ADDRESS_PROPERTY.equals(name)
                    || USERNAME_PROPERTY.equals(name)
                    || PASSWORD_PROPERTY.equals(name))
            {
                return null;
            }
            if (SESSION_MAINTAIN_PROPERTY.equals(name))
            {
                return new Boolean(false);
            }
            throw new JAXRPCException("Stub does not recognize property: " + name);
        }
    
        protected void _prepOperation(Operation op)
        {
            for (int i = 0; i < _propertyNames.length; ++i)
            {
                op.setProperty(_propertyNames[i], _propertyValues[i].toString());
            }
        }
    
        public String getWeatherServiceByZip(String zipCode) throws RemoteException
        {
            Object inputObject[] = new Object[]
            { zipCode };
    
            Operation op = Operation.newInstance(_qname_operation_GetCityWeatherByZIP,    _type_GetCityWeatherByZIP, _type_GetCityWeatherByZIPResponse);
            _prepOperation(op);
            op.setProperty(Operation.SOAPACTION_URI_PROPERTY,"http://ws.cdyne.com/WeatherWS/GetCityWeatherByZIP");//SOAP Action
            Object resultObj;
            try
            {
            resultObj = op.invoke(inputObject);
            System.out.print(resultObj.toString());
            } catch (JAXRPCException e)
            {
            e.printStackTrace();
            Throwable cause = e.getLinkedCause();
            if (cause instanceof java.rmi.RemoteException)
            {
            throw (java.rmi.RemoteException) cause;
            }
            throw e;
            }
            return (String) ((Object[]) resultObj)[0];
        }
    
        static
        {
            _type_GetCityWeatherByZIPResponse = new Element(_qname_GetCityWeatherByZIPResponse,_complexType(new Element[]
                    { new Element(new QName("http://ws.cdyne.com/WeatherWS","GetCityWeatherByZIPResult"), Type.STRING, 0, 1, false) }), 1, 1,false);
            _type_GetCityWeatherByZIP = new Element(_qname_GetCityWeatherByZIP,_complexType(new Element[]
                    { new Element(new QName("http://ws.cdyne.com/WeatherWS","ZIP"), Type.STRING, 0, 1, false) }), 1, 1, false);
            }
    
        private static ComplexType _complexType(Element[] elements)
        {
            ComplexType result = new ComplexType();
            result.elements = elements;
            return result;
        }
    }
    

    3 problem

    There is no information about the exception that occurs when I try to debug my Application actually when you call the Web Service to:

    resultObj = op.invoke (inputObject);

    Any help.  If you have any other suggestions on how to consume a web service using BB. I don't want to use KSOAP2 because the source code is not updated more and prefer the native BB mode without using the 3rd party jars.

    Thank you

    How do you generate the stub class? Have you used Sun's Wireless Toolkit?

  • Consume a web service from ASP which responds with complex data types...

    Here's my problem - I'm trying to consume a web service from a provider that uses complex data types.

    The starting of the WSDL part looks like this (I have not included all) - named have been changed to protect the innocent:

    " < wsdl:definitions targetNamespace = ' http://domain_name ">
    WSDL: < types >
    " < s:schema elementFormDefault ="qualified"targetNamespace =" http://domain_name ">
    < s:element name = "Authentication" >
    < s:complexType >
    < s:sequence >
    < s:element minOccurs = "0" maxOccurs = "1" name = "User name" type = "s:string" / >
    < s:element minOccurs = "0" maxOccurs = "1" name = "Password" type = "s:string" / >
    < s:element minOccurs = "0" maxOccurs = "1" name = "Token" / >
    < / s:sequence >
    < / s:complexType >
    < / s:element >
    < s:element name = "AuthenticateResponse" >
    < s:complexType >
    < s:sequence >
    < s:element minOccurs = "1" maxOccurs = "1" name = "AuthOK" type = "s:int" / >
    < s:element minOccurs = "0" maxOccurs = "1" name = "Token" / >
    < / s:sequence >
    < / s:complexType >
    < / s:element >

    Since it is a return, with a sequence of complexType, I expect an array or a structure returned, but instead I just get the value of "AuthOK" and no way to get something else.

    Here are the ways I tried to call it:

    < cfscript >

    WS = createObject ("WebService", "https://WSDL_URL");

    WS_ret = WS. Authentication (name of user = "username", password = "password", token = "");

    < / cfscript >

    < cfdump var = "" #WS_ret # "/ >"

    < cfinvoke webservice = "WSDL_URL" method = "Authentication" returnVariable = "WS_ret" >

    < name cfinvokeargument = "userID" value = "7253320" / >
    < cfinvokeargument name = "password" value = "ctpjxs3" / >
    < name cfinvokeargument = "SecurityToken" value = "" / > "

    < / cfinvoke >

    < cfdump var = "" #WS_ret # "/ >"

    Any ideas how I can get the other variables in the sequence? I have other calls after that have a greater amount of variables, and as such I can't use without being about to get more than the

    You can try using the function GetSOAPResponse to review the XML code you receive.

    'GetSOAPResponse '.

    http://livedocs.Adobe.com/ColdFusion/8/htmldocs/help.HTML?content=functions_e-g_59.html#50 54378

    "Troubleshooting SOAP requests and responses.

    http://livedocs.Adobe.com/ColdFusion/8/htmldocs/help.HTML?content=webservices_27.html#1222 070

    As for the question of docs, I suspect mediocre edition is at fault.  I assume that the web service is supposed to have an echoStruct method but this is unclear.

  • Using a soap Web service

    Hello

    I want to use a soap Web service.

    So far, I tried (without success) wws and am now explore gSOAP (http://www.cs.fsu.edu/~engelen/soap.html)

    It generated classes with success and I don't get any errors displayed (I just added all generated classes in the src folder), but the generation fails with:

    [...]

    CC: C:/BB10NDK/host/win32 / x 86/usr/bin/ntoarm-ld caught signal 1
    make [2]: * [o.le - v7/hellocascades] error 1
    make [1]: * [release-all] error 2
    make: * [device] error 2

    no idea how I can get the code to compile?

    Or is - what someone else has experience using a Web SOAP with the NDK?

    I managed to build the project.
    has taken about four hours with two other C developers to get all libraries and files in place.
    I'll try to run a Web service, if it is all passed, I'll write a guide

  • What happened to the application Panel in Dreamweaver (consume the web service)?

    Pre-Creative cloud, I had used Dreamweaver to create a code to consume external web services. It was, I believe, the Panel "Applications".

    How to use Dreamweaver CC to consume a web service? I'm not finding anything that contributes to this day.

    Thanks in advance,

    BW

    Cold Fusion support has been removed from the DW with the release of CC 2013.

    The last version to support CF was Creative Suite 6 (CS6 2012).

    If you are a subscriber to paying creative cloud, you can fall back to your Creative Cloud Desktop App CS6 clicking applications > all THE APPS, scroll down, click on the PREVIOUS VERSIONS.  CS6 will appear in the list options.

    Nancy O.

  • Consume a Web Service Proxy


    Hi all

    How to consume an integrated Oracle SOA Gateway Web Service exposed using Oracle JDeveloper?

    Thank you

    @P

    Well, jdev 10g is very old, so one wonders if the SOAP ws libraries delivered with him can support new web services.

    But, here's documentation: http://sqltech.cl/doc/oas10gR31/core.1013/b28764/web_services003.htm

    Dario

  • Consume peoplesoft Web services using Jdeveloper authentication failure

    Hello

    I use Jdeveloper 11 g to consume the webservice of peoplesoft and following the exact steps in the following article.
    http://www.Oracle.com/technology/tech/fmw4apps/PeopleSoft/OFM-PSFT-blog-postings.HTML#Web-services
    The Web service I use is different from the example I use the production version of the wsdl file.
    After following all the steps, the generated proxy creates not poseurs of the getter for user name, password (Basic authentication).
    Is it supposed to auto generate or what I need to encode?
    I did the code of the getter set username and password and provide the credentials, but I get an error authentication failed.

    java.rmi.RemoteException: SOAPFaultException - FaultString FaultCode [http://schemas.xmlsoap.org/soap/envelope/ {} Client.Authentication] [did not receive message weblogic.wsee.util.AccessException: a code of 401 error (unauthorized) was returned by the server to http://ps-dev-web.kc.lan:30710/PSIGW/HttpListeningConnector.] Please check that the username and password are set correctly and that you are authorized to access the requested method.
    -> Http://ps-dev-web.kc.lan:30710/PSIGW/HttpListeningConnector server returned a code of 401 error (unauthorized). Please check that the username and password are set correctly and that you are authorized to access the requested method.
    ] FaultActor detail [null] [< detail > < bea_fault:stacktrace xmlns:bea_fault = "http://www.bea.com/servers/wls70/webservice/fault/1.0.0" > weblogic.wsee.util.AccessException: a code of 401 error (unauthorized) was returned by the server to http://ps-dev-web.kc.lan:30710/PSIGW/HttpListeningConnector.] Please check that the username and password are set correctly and that you are authorized to access the requested method.
    at weblogic.wsee.connection.transport.http.HTTPClientTransport.handleErrorResponse(HTTPClientTransport.java:373)

    The code I used to generate getter, setter is

    -These methods have not generated-
    public String getPassword() {}
    (String) return ((heel) port). getProperty (Stub.PASSWORD_PROPERTY);
    }

    public void setPassword (String password) {}
    ((Heel) port). setProperty (Stub.PASSWORD_PROPERTY, password);
    }

    public String getUsername() {}
    (String) return ((heel) port). getProperty (Stub.USERNAME_PROPERTY);
    }

    {} public void setUsername (String username)
    ((Heel) port). setProperty (Stub.USERNAME_PROPERTY, username);
    }
    I don't know where I'm going wrong, credentials, I used the work normally but do not work with this application.
    I'd appreciate if I can get some light on this issue.

    Thank you
    Ash

    Published by: [email protected] on June 2, 2010 07:56

    In your case, the settings are not IN/OUT but OUTSIDE.
    To create the owner and get the values after the operation, you must do something like this:

    Create the parameters of the licensee
    Holder nt new holder =();
    Holder det holder new =();

    Make the call
    port.createCompIntfcKCMWEBCASECI (nt, det);

    Get the value
    System.out.println ("Value is" + nt.) Value();

    Thank you
    Vishal

  • SOAP Web service only works if the binding variable included in the object view


    JDeveloper version - 11.1.1.7.0


    I did this video Building WS to an existing of ADF - Insider ADF application for the integration of web services SOAP at my request. It worked fine until I added a variable binding to the my view object (after which she stopped recovery of values). I tried checking the log by modifying the FINEST logging level as proposed for ADF BC Logging none of the mistakes. Please help me on changes to make it work.

    Answered by thread

    ERROR when using ViewCriteria in search of Service BC ADF

  • How to get started with consuming java Web services from WSDL - JDeveloper 11.1.1.7

    Hi all

    I developed a SOAP based WebService (JAX - WS) for product information. I deployed on stand-alone Weblogic server and the resulting WSDL file generated.

    In the ADF, we totally 3 options to work with the WSDL file.

    1 web Service DataControl (which will directly create a DataControl to access services exposed by Web service through WSDL)

    2 web Service proxy. (A proxy for the Web service of the Fund and offers to the client to interact with the exposed services)

    3. Java Web Service WSDL.

    From these 3 options, I am aware of the first two options. But on the way to the 3rd point or Java Web Service from WSDL, I'm not in a position to know. in what scenario, we will use this service.

    Now I have created the java web services starting from the WSDL. After generating the files of the project structure is as below.

    Please let me know where to start to interact with my application services. (We must separate class DC or any other way to interact)

    otn.PNG

    Please let me know your inputs on this. valuable suggestions would be appreciated.


    Thank you and best regards,

    Miko Auntie.

    Hi all

    On top of the implementation class (ProductsSEIImpl.java), we have an option called create a Client for the Web Service Annotations.

    This is the right option to choose, so that the client Classes get generated pertaining to this service. Of the client class, we can access the services available?

    Please comment on this if I depart.

    Thank you best regards &,.

    Miko Auntie.

  • Server error in application when consuming a web service

    We are working on 33 REGS3/Bundle in PeopleTools 8.52.10 for Campus Solutions 9.0. A web service that we have been since 2008 consumption no longer works. Actually, yesterday she also did not work in our QA environment, but today it is and it works in our environments to TEST and DV.

    I have a test page that allows me to test the Web Service only, and what happens is that I put all the fields and then I submit the call of service and after 30 seconds or if I am expelled from PIA.

    The error I get is:

    PSPAL: Abort: received fatal exception

    PSAPPSRV.1872 (370) [20/05/14 16:16:49 [email protected] (FIREFOX 29,0;] [Win7) ICPanel] (0) aborted process.

    PSAPPSRV.768 (0) [20/05/14 16:17:10] (0) PeopleTools release 8.52.10 (WinX86) from. Tuxedo server is APPSRV 99/3

    PSAPPSRV.768 (0) [20/05/14 16:17:10] (0) used Cache Directory: f:\SES9_CFG_8.52\appserv\s9fix\CACHE\PSAPPSRV_3\

    PSAPPSRV.768 (0) [16: 17:14] (0) 20/05/14 server started

    I don't see anything in the Service monitor and I don't see anything in the msgLog.html or the errorLog.html. I have Google had the error PSPAL and he said this:

    ---

    "We managed to solve this problem. After all a lot of digging, we determined that the load balancing session timeout has been set to less then the timeout in PIA. Whenever users has expired because of this problem this type of error would be generated in the application log. »

    ----

    Sysadmin says that we do not have an on this server load balancer


    I'm at a loss what to try next, or how I can fix this problem.


    Tamara Foster

    Northwestern University

    This problem has been resolved by a SR. The solution is that when I re-consumed service there is a checkbox named "Build Document Messages" which must be unchecked.

    Once I unchecked it and re - consume the service once again, it worked.

    Thanks to Hazim Al-Azawi, who provided the solution for me.

    Tamara Foster

    Northwestern University

  • Call SOAP Web Service using UTL_HTTP vs APEX_WEB_SERVICE. MAKE_REQUEST

    Dear all,

    When I call the SOAP using APEX_WEB_SERVICE Web services. MAKE_REQUEST, so I'm able to get the response from the web service. Character, however all the German are replaced by those of the JUNK. However the data just fine when I test web services using SOAP UI.

    To resolve this problem, I tried to call the web service using UTL_HTTP. However when I use UTL_HTTP, then I get following error.

    ORA-24247: access denied by network access control list

    Can someone advise me...

    < Li > why German characters are replaced with the data side when calling WebService from APEX, while it works very well in SOAP UI
    < Li > when can I access web service successfully using APEX_WEB_SERVICE, then why he throws error ORA-24247 when I call using UTL_HTTP?


    DB: Oracle Database 11 g Enterprise Edition Release 11.2.0.1.0 - 64 bit Production
    APEX: 4.0.2.00.07
    Web server: EPG
    SELECT * FROM NLS_DATABASE_PARAMETERS;
    
    PARAMETER                      VALUE                                  
    ------------------------------ ----------------------------------------
    NLS_LANGUAGE                   AMERICAN                                 
    NLS_TERRITORY                  AMERICA                                  
    NLS_CURRENCY                   $                                        
    NLS_ISO_CURRENCY               AMERICA                                  
    NLS_NUMERIC_CHARACTERS         .,                                       
    NLS_CHARACTERSET               AL32UTF8                                 
    NLS_CALENDAR                   GREGORIAN                                
    NLS_DATE_FORMAT                DD-MON-RR                                
    NLS_DATE_LANGUAGE              AMERICAN                                 
    NLS_SORT                       BINARY                                   
    NLS_TIME_FORMAT                HH.MI.SSXFF AM                           
    NLS_TIMESTAMP_FORMAT           DD-MON-RR HH.MI.SSXFF AM                 
    NLS_TIME_TZ_FORMAT             HH.MI.SSXFF AM TZR                       
    NLS_TIMESTAMP_TZ_FORMAT        DD-MON-RR HH.MI.SSXFF AM TZR             
    NLS_DUAL_CURRENCY              $                                        
    NLS_COMP                       BINARY                                   
    NLS_LENGTH_SEMANTICS           BYTE                                     
    NLS_NCHAR_CONV_EXCP            FALSE                                    
    NLS_NCHAR_CHARACTERSET         AL16UTF16                                
    NLS_RDBMS_VERSION              11.2.0.1.0                               
    
     20 rows selected
    Kind regards
    Hari

    The solution was...

    I just put following line before making the call to the web service by using APEX_WEB_SERVICE. MAKE_REQUEST.

    /*In my case DB character-set is AL32UTF8, so I set it to UTF-8. */
    
    UTL_HTTP.SET_BODY_CHARSET ('UTF-8');
    

    More information see SET_BODY_CHARSET procedures

    If I do not set this, it uses the as ISO-8859-1 character set, which is the cause of my problem.

    Kind regards
    Hari

  • Consume a Web Service

    Hey,.

    Newbie here and I was wondering if someone could point me in the right direction to write a class to connect to a Web service?  I use Blackberry JDE plugin for Eclipse.  I tried to search some forums but more is to do with ksoap plugin that I have trouble with so thought that I would write my own class.  All documents, samples, etc. would be much appreciated.

    Tried to do a search in the developers section of the BlackBerry but to be honest, I find the terrible site and can never find what I was looking for!

    Hello

    I developed a small application based on Web services, by following these steps...

    1. create a webservice and edited.

    2. using the SUN J2ME Wireless Toolkit, point the WSDL and generate high heels...

    3. After generating stubs, import classes into your project and access as simple java classes...

    Please correct me if I'm wrong...

  • APEX 4.2.3 consume the web service returning a PDF problem

    Using APEX 4.2.3 on a database of Oracle 11 g R2, Firefox 31.7, we ask a service web restful one before the process of page header, to download a PDF Code file used:

    declare

    CLOB l_clob;

    l_blob blob.

    l_sql_delimiter varchar2 (30);

    l_lang_context integer: = DBMS_LOB. DEFAULT_LANG_CTX;

    l_warning integer: = DBMS_LOB. WARN_INCONVERTIBLE_CHAR;

    l_dest_offset integer: = 1;

    l_source_offset integer: = 1;

    l_Json VARCHAR2 (4000);

    Start

    l_clob: = null;

    DBMS_LOB.CREATETEMPORARY (l_blob, true);

    -Generate here the content of your file in l_clob.

    hr_Pkg.Security_Termination_Form(:P4200_PERSON_HR_ID,l_Json);

    hr_Pkg.call_rest_webservice (l_Json, 'TestME.Pdf', l_Clob);

    Logger.log ('CLOB SIZE IN PAGE: ' | sys.) DBMS_LOB. GetLength (l_clob));

    sys. HTP.init;

    sys.owa_util.mime_header (' application/pdf', FALSE, 'UTF-8');

    sys. HTP.p ("Content-length: ' |") sys.DBMS_LOB.GetLength (l_clob));

    sys. HTP.p ('Content-Disposition: attachment; filename = "TestME.Pdf" ');

    sys.owa_util.http_header_close;

    () DBMS_LOB.converttoblob

    dest_lob = > l_blob,

    src_clob = > l_clob,

    amount = > DBMS_LOB. LOBMAXSIZE,

    dest_offset = > l_dest_offset,

    offset = > l_source_offset,

    blob_csid = > DBMS_LOB. DEFAULT_CSID,

    lang_context = > l_lang_context,

    WARNING = > l_warning

    );

    Logger.log ("SIZE of BLOB: ' |") sys. DBMS_LOB. GetLength (l_blob));

    sys.wpg_docload.download_file (l_blob);

    apex_application.stop_apex_engine;

    exception when others then

    sys. HTP. PRN (' error: ' |) SQLERRM);

    apex_application.stop_apex_engine;

    end;

    We run in the question, that the PDF file is empty with the exception of a few fill-able fields that must be completed in advance by the call to the web service.

    When you run the web service directly from the browser, the PDF that is generated is very well and seems to be complete. And the size of the file that is created as the clob from the web service call is exactly the same size it as the pdf file received directly from the web service.

    When we compare the size of the clob to the size of the blob, we see that the blob is slightly larger in size than the clob.

    Any suggestions? (Sample code for posting to the hosted site for Oracle will not work because you can not call the hosted instance web services and web service is hosted BEHIND our firewall).

    Thank you

    Tony Miller
    Software LuvMuffin
    Ruckersville, WILL

    Problem is resolved... As opposed to the use of the APEX apex_web_service.make_rest_request must use the utl_http.begin_request and then treats the query returned through utl_http. READ_RAW and who then saving it in a temporary BLOB.

    Maybe when we update to the APEX 5, I'll see if I can deal with it using standard APEX packages...

    Thank you

    Tony Miller
    Software LuvMuffin
    Salt Lake City, UT

  • How to consume the web service using PLSQL in 11g

    Hello

    I created a site using jDeveloper, web services which when I put in the web browser and press enter, it will display the settings screen and when I pass the value for the parameter, and then it displays the output of the XML returned by the PL/SQL (called in the Web Service) package. Now, I want to call this webservice in PL/SQL and read XML data and fill in the staging table. Can anyone suggest me how to achieve this functionality by using Oracle PL/SQL

    I use the database 11g and jDeveloper Version :-Studio Edition version 10.1.3.0

    Thank you very much in advance.

    Vijay

    The WSDL file describes the web service.

    To obtain the WSDL, you enter the URL of the web service and add some ? WSDL to the URL. This indicates the web service to return to its definition.

    For example

    URL of the Web Service: http://wsf.cdyne.com/WeatherWS/Weather.asmx

    WSDL URL: http://wsf.cdyne.com/WeatherWS/Weather.asmx?WSDL

    When you read (using 'web browser' UTL_HTTPpackage) the XML response from the web service, read as strings (PL/SQL varchar2, size 32 K max).

    You should read the answer as the strings, then writing/writeappend these channels in a CLOB (using the DBMS_LOB package). If you are VERY sure that the web service call ALWAYS returns an XML of less than 32 k, you can skip using a CLOB.

    Whatever it is, read you the response from the web service in the form of text (such as plain text, it is what is sent). The next step on your part is to parse text into an XML DOM (document object model) - and storing the DOM in an Oracle XmlType variable.

    When in a DOM, you can use Oracle XML functions to extract the attributes and values of the key element of the response from the web service.

  • How to get the XML from the Request of Java object before sending. SOAP Web services

    I'm building Java request to Online Web Services and we'll call it application A . I got the WSDL forms the second part of the file in order to communicate with their application and we'll call it application B .

    Of the WSDL file generate the Java required classes that are Requests and Responses . classes Application A will send some request object after setting the parameters required and with the exception of response object of application B .

    The connection is established and the two applications A and B communicate with each other.

    Question:

    Of application A How can I get the xml data (or text file) for the request object before sending it to application B ?

    As described the connection is passing Java object such as request and I know that in some point this request will be converted to xml file. How to get it?

    -EDIT-

    Missing important information which can be confusing.

    I'm generated the Java rating were generated using the Axis framework

    The problem is solved by, add the following statements in the bindingStub class that was automatically generated from the WSDL file to the web-services you are trying to access.

       String request = _call.getMessageContext().getRequestMessage().getSOAPPartAsString(); 
     String response = _call.getMessageContext().getResponseMessage().getSOAPPartAsString();
    

    These statements should be placed after the following method call _call.invoke otherwise you will get NullPointerException .

    _callis a variable of type org.apache.axis.client.Cal and it is automatically generated byAxis

Maybe you are looking for