Issue with - Consume Web Services in a Messaging Only Scenario

Hello,
I am trying to consume a Oracle - SOA web service in BizTalk.
1. I followed the below MSDN post,
http://msdn.microsoft.com/en-us/library/aa560545%28v=bts.70%29.aspx
but I am getting "The custom tool 'BtsDiscoCodeGenerator' failed." error.
2. Tried another approach like the below blog
http://blogs.msdn.com/b/amantaras/archive/2010/03/03/consuming-a-web-service-in-a-non-orchestration-scenario.aspx
In this case, I am getting this error
"A message sent to adapter "SOAP" on send port "xxx" with URI "<<WSDL>>" is suspended.
 Error details: Failed to serialize the message part "ProcessPOAck1" into the type "ProcessPOAckType" using namespace "xxx". Please ensure that the message part stream is created properly. "
I made sure there are no data type errors... I have copied the message to SoapUI and tested successfully. The message (output from BizTalk map) does not have soap envelop though. I had to copy
the message in
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" <<some name spaces>>
   <soapenv:Header/>
   <soapenv:Body>
   </soapenv:Body>
</soapenv:Envelope>
tags to submit a request successfully.
Any help in this regard is greatly appreciated.
Thanks,
Venkat.

Why are you using the SOAP adapter instead of the WCF Adapter?  I think the only way to do that would be with some fairly heavy custom pipeline components. 
Using the WCF Adapter, this is very easy - you just need to subscribe to the result message from the web service call - not a big deal, just play with the promoted properties and see what you have; normally SPName.  This can be sent to a file location
with Overwrite set so that you never run out of disk space (if you don't care about the content response). 
-Dan
If this answers your question, please Mark as Answer

Similar Messages

  • Problem with consuming web services in Flex

    So i'm trying to set up a basic flex application to consume a
    web service (POJO exposed with axis2). Here's the WSDL:
    <wsdl:definitions xmlns:wsdl="
    http://schemas.xmlsoap.org/wsdl/"
    xmlns:axis2="
    http://ws.apache.org/axis2"
    xmlns:mime="
    http://schemas.xmlsoap.org/wsdl/mime/"
    xmlns:http="
    http://schemas.xmlsoap.org/wsdl/http/"
    xmlns:ns0="
    http://webservices.emailcenter.pas/xsd"
    xmlns:soap12="
    http://schemas.xmlsoap.org/wsdl/soap12/"
    xmlns:ns1="
    http://org.apache.axis2/xsd"
    xmlns:xs="
    http://www.w3.org/2001/XMLSchema"
    xmlns:soap="
    http://schemas.xmlsoap.org/wsdl/soap/"
    targetNamespace="
    http://ws.apache.org/axis2">
    <wsdl:types>
    <xs:schema xmlns:ns="
    http://webservices.emailcenter.pas/xsd"
    targetNamespace="
    http://webservices.emailcenter.pas/xsd"
    elementFormDefault="unqualified"
    attributeFormDefault="unqualified">
    <xs:element name="getTime">
    <xs:complexType />
    </xs:element>
    <xs:element name="getTimeResponse">
    <xs:complexType>
    <xs:sequence>
    <xs:element type="xs:string" name="return" />
    </xs:sequence>
    </xs:complexType>
    </xs:element>
    </xs:schema>
    </wsdl:types>
    <wsdl:message name="getTimeMessage">
    <wsdl:part element="ns0:getTime" name="part1" />
    </wsdl:message>
    <wsdl:message name="getTimeResponse">
    <wsdl:part element="ns0:getTimeResponse" name="part1"
    />
    </wsdl:message>
    <wsdl:portType name="SimpleServicePortType">
    <wsdl:operation name="getTime">
    <wsdl:input message="axis2:getTimeMessage" />
    <wsdl:output message="axis2:getTimeResponse" />
    </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding type="axis2:SimpleServicePortType"
    name="SimpleServiceSOAP11Binding">
    <soap:binding style="document" transport="
    http://schemas.xmlsoap.org/soap/http"
    />
    <wsdl:operation name="getTime">
    <soap:operation style="document" soapAction="urn:getTime"
    />
    <wsdl:input>
    <soap:body namespace="
    http://ws.apache.org/axis2"
    use="literal" />
    </wsdl:input>
    <wsdl:output>
    <soap:body namespace="
    http://ws.apache.org/axis2"
    use="literal" />
    </wsdl:output>
    </wsdl:operation>
    </wsdl:binding>
    <wsdl:binding type="axis2:SimpleServicePortType"
    name="SimpleServiceSOAP12Binding">
    <soap12:binding style="document" transport="
    http://schemas.xmlsoap.org/soap/http"
    />
    <wsdl:operation name="getTime">
    <soap12:operation style="document"
    soapAction="urn:getTime" />
    <wsdl:input>
    <soap12:body namespace="
    http://ws.apache.org/axis2"
    use="literal" />
    </wsdl:input>
    <wsdl:output>
    <soap12:body namespace="
    http://ws.apache.org/axis2"
    use="literal" />
    </wsdl:output>
    </wsdl:operation>
    </wsdl:binding>
    <wsdl:binding type="axis2:SimpleServicePortType"
    name="SimpleServiceHttpBinding">
    <http:binding verb="POST" />
    <wsdl:operation name="getTime">
    <http:operation location="getTime" />
    <wsdl:input>
    <mime:content type="text/xml" />
    </wsdl:input>
    <wsdl:output>
    <mime:content type="text/xml" />
    </wsdl:output>
    </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="SimpleService">
    <wsdl:port binding="axis2:SimpleServiceSOAP11Binding"
    name="SimpleServiceSOAP11port0">
    <soap:address location="
    http://10.1.1.149:8080/axis2/services/SimpleService"
    />
    </wsdl:port>
    <wsdl:port binding="axis2:SimpleServiceSOAP12Binding"
    name="SimpleServiceSOAP12port0">
    <soap12:address location="
    http://10.1.1.149:8080/axis2/services/SimpleService"
    />
    </wsdl:port>
    <wsdl:port binding="axis2:SimpleServiceHttpBinding"
    name="SimpleServiceHttpport0">
    <http:address location="
    http://10.1.1.149:8080/axis2/rest/SimpleService"
    />
    </wsdl:port>
    </wsdl:service>
    the code for my application is very simple and
    straightforward:
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="
    http://www.adobe.com/2006/mxml"
    layout="absolute" creationComplete="ss.getTime()">
    <mx:WebService id="ss" wsdl="
    http://10.1.1.149:8080/EmailCenter/services/SimpleService?wsdl">
    <mx:operation name="getTime"/>
    </mx:WebService>
    <mx:DataGrid
    dataProvider="{ss.getTime.lastResult}"></mx:DataGrid>
    </mx:Application>
    when I try to consume this in my flex application I keep
    getting the following error:
    [RPC Fault faultString="Required parameter 'getTime' not
    found in input arguments." faultCode="Client.Input"
    faultDetail="null"]
    at
    mx.rpc.soap::Operation/mx.rpc.soap:Operation::createFaultEvent()
    at mx.rpc.soap::Operation/
    http://www.adobe.com/2006/flex/mx/internal::invokePendingCall()
    at mx.rpc.soap::Operation/
    http://www.adobe.com/2006/flex/mx/internal::invokeAllPending()
    at mx.rpc.soap::WebService/::unEnqueueCalls()
    at mx.rpc.soap::WebService/
    http://www.adobe.com/2006/flex/mx/internal::wsdlHandler()
    at
    flash.events::EventDispatcher/flash.events:EventDispatcher::dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at mx.rpc.soap::WSDLParser/dispatchEvent()
    at mx.rpc.soap::WSDLParser/::parseCompleted()
    at mx.rpc.soap::WSDLParser/
    http://www.adobe.com/2006/flex/mx/internal::httpResultHandler()
    at
    flash.events::EventDispatcher/flash.events:EventDispatcher::dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at mx.rpc::AbstractInvoker/
    http://www.adobe.com/2006/flex/mx/internal::dispatchRpcEvent()
    at mx.rpc::AbstractInvoker/
    http://www.adobe.com/2006/flex/mx/internal::resultHandler()
    at mx.rpc::Responder/result()
    at mx.rpc::AsyncRequest/acknowledge()
    at ::DirectHTTPMessageResponder/completeHandler()
    at
    flash.events::EventDispatcher/flash.events:EventDispatcher::dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at flash.net::URLLoader/flash.net:URLLoader::onComplete()
    Any advice anyone could give would be wonderful. I'm pretty
    new at this flex stuff but I feel like the problem may be with my
    WSDL?

    perhaps you missed this step:
    --> Modify the code and add Credentials before calling the web method:
    Public
    SubMain()
    Dim
    ws As NewService1
    ws.Credentials =
    New System.Net.NetworkCredential("user name",
    "password",
    "domain name")
    MsgBox("Square
    of 2 = "& ws.Square(2))
    Dts.TaskResult = Dts.Results.Success
    End
    Sub
    Arthur
    MyBlog
    Twitter

  • Security issues with calling web services from within Oracle?

    I'd like to use a trigger to initiate pushing data to a web service, so I thought we should call the web service from PL/SQL in a DBMS job, or perhaps create a .NET stored proc to call the service. Our DB Lead is concerned about security, since the standard model is for clients to call the database, and not for the database to function as a client.
    Does this pose any security risk? Can you refer me to any best practices or articles on this?
    Thanks in advance.
    Edited by: Kit.net on Nov 9, 2010 11:28 AM

    First, a trigger is there to for a single sole purpose - guaranteeing the integrity of the data and the transaction. It is not there to interact with external services and processes (like mail, web and other services). Doing that exposes the transaction to those other processes/services. The transaction can now fail. not because of a business rule validation, but because of a network error when the trigger accesses an external service. How on earth can a business transaction fail when the transaction is valid, but a the transaction's trigger hit an external access error!?
    And what happens do that event you have fired off in the trigger, when the transaction is rolled back? How do you undo that event you have created in the trigger that was based on uncommitted data?
    So using a trigger like this is simply stupid (and yes, I have seen it too often in practice with horrible results to sugarcoat such an idiotic approach).
    As for calling a web service from the database, using the database as the client in such a case. This is not a security risk. This is not unusual. In fact, it is very common in my experience. We have a lot of databases, ranging from SE to EE and several RAC clusters. All of them function as a client at some stage during processing. Some use a db link - and as a client fire off a SQL via that db link to a database server to obtain data. Some use ftp and act as a ftp clients, transferring processed data (XML format) to a server. Some call web services to extract data from 3rd party systems to reconcile the differences between local data sets and 3rd party data sets..
    This is common between server and server. I do not see anything unusual in the database server using another server (and acting as a client when it does). Security between servers should not be a major problem (in fact, it can easily be done in a very robust way using trusted and encrypted communication).
    The problem occurs when a client connects to the server and client and server roles are swapped at some stage (like the server "writing" a file directly to the client's filesystem). This very seldom makes any sense. And this is where authentication and security become an issue.

  • Issue with testing web service via SICF

    Hi, I am trying to test service via SICF. This service is for a FM based Web Service. When I test the service from SICF it passes the authorization checks but then error page, "Page not Found" is shown with error "HTTP 500 - Internal server error Internet Explorer".
    The trace file shows the errors:
    Error in module XMLConverterReadTag:3059
    can not read XML data stream(2097184)
    Does anyone know what is causing this issue. The FM which the web service is based on is a test FM with one line of code and returns the character 'S'.
    Any idea or suggestion will be great.

    Dear Shay,
    Thanks for your prompt response.
    You are right. JDeveloper 11g uses JDK 6 style annotations for the clients it creates. But you can change the JRE Version used at compile time by following these steps:
    1. In the Applications Navigator, right-click the Project Nanem node and select Project Properties... from the context menu.
    2. Select the Compiler node and check the Source Files and Generated Class Files dropdown lists. You may change these versions depending on the version of the JRE you are using with Forms to ensure that the compiled
    classes from JDeveloper can be read by the JRE used by Form.
    So I selected JDK version 1.4 there.
    Sorry that I did not mention that we are using Oracle Forms 10g. That is the reason I selected JDK 1.4
    Thank you.
    Scott.

  • Issue with calling Web Services from Adobe Interactive Forms

    Hi,
    I have created Web Services for remote enabled function module and imported it in the data connection in adobe form. In the adobe form created the button (Drag&Drop from Data Connection) as HTTP submit button. In the submit URL I have given the Web Services link. A program is downloading the pdf form in desktop with fillable as 'N'.
    When I provide the input parameters and click on the button, its promts for SAP user id and password. After that it shows the error as "An error occurred during the submit process. Cannot process content of type text/xml".
    Why this error is coming and how to correct?
    How can we debug web services?
    Thanks and Regards,
    Praveen

    Sherif, this is a wrong forum. Please post on the LiveCycle Designer thread: http://forums.adobe.com/community/livecycle/livecycle_es/livecycle_designer_es

  • Issue with creating Web Service Client using Oracle JDeveloper

    Hi All,
    I am trying to create a Web Service Client using Oracle JDeveloper. I set the Project compiler property to JRE 1.4
    When I run the web service client, it throws me bunch of errors saying:
    'Error(32,2): annotations are not supported in -source 1.4'
    I am wondering why JDeveloper is using annotations even after I set the compiler property to 1.4
    I am following this link to create the webservice client:
    http://www.oracle.com/technetwork/developer-tools/forms/webservices-forms-11g-094111.html
    Any help in this regard would be greatly appreciated.
    Thanks,
    Scott.

    Dear Shay,
    Thanks for your prompt response.
    You are right. JDeveloper 11g uses JDK 6 style annotations for the clients it creates. But you can change the JRE Version used at compile time by following these steps:
    1. In the Applications Navigator, right-click the Project Nanem node and select Project Properties... from the context menu.
    2. Select the Compiler node and check the Source Files and Generated Class Files dropdown lists. You may change these versions depending on the version of the JRE you are using with Forms to ensure that the compiled
    classes from JDeveloper can be read by the JRE used by Form.
    So I selected JDK version 1.4 there.
    Sorry that I did not mention that we are using Oracle Forms 10g. That is the reason I selected JDK 1.4
    Thank you.
    Scott.

  • Problem with consuming web service from abap

    Hello,
    I want to consume this web service VatatWebService Web Service From SAP.
    The transaction code soamanager doesn't exist in our system, i'm the only man who use SAP in our company(we don't have BC peoples....).
    I find some advice to use "wsadmin" and "lpconfig", but i do not know the step: wish data i have to fill in in tcode "wsadmin" or "lpconfig".
    I'm very new in this case...
    Is there any doc showing the step to consume a web service?
    Thank u very match.
    Ouail

    Hi,
    Have you tried to search using that magical tool called Google?  If I search for "SAP LPConfig" I get lots of promising looking answers:
    You could also try searching help.sap.com
    I appreciate you are new but one of the best skills you can learn in the world of SAP is how to search out and find information, so you aren't dependant upon SCN and/or others to help you when you get stuck.
    Cheers,
    G.

  • Issue with Excel Web Access --Excel graph showing only gray color

    I am using "Excel Web Access" Web Parts to show the excel graphs in my MOSS2007 setup. I have multiple team sites under one site-collection. Excel web access is fine for all the team sites but , its showing only gray color for just one site. I tried to upload
    new excel sheet with different graphs but still it shows the same gray color.
    Any help would be really appreciated. 
    Umesh Mishra | My blogs: http://windowsadminblog.blogspot.com | Twitter @UmeshMishra | Linkedin: /in/umeshmishra

    I was able to resolve the issue , here is the solution: http://windowsadminblog.blogspot.in/2012/12/excel-web-access-graphs-showing-gray.html
    Umesh Mishra | My blogs: http://windowsadminblog.blogspot.com | Twitter @UmeshMishra | Linkedin: /in/umeshmishra

  • "no serializer is registered..." error with a web service not working

    I'm using JDeveloper 10.1.3
    EJB 3.0
    I'm having issues with the web service not working after I create a client for it. The web service works fine up until I generate the proxy on the other side.
    ERROR An error occurred for port: {http://buslogic/}MyWebService1SoapHttpPort: no serializer is registered for (class buslogic.runtime.....
    I saved the file before I added the proxy and the wsdl looks the same between the working one and the non working one. I can not pin point the when the change to the web service is occuring. It seemed to work once all the way up until I had a ADF page trying to retrieve data, another time it failed when the proxy was created.
    I can get the version that I saved to work immediately after the version that does not fails.
    Any help would be greatly appreciated,
    Dan

    I'm using JDeveloper 10.1.3
    EJB 3.0
    I'm having issues with the web service not working after I create a client for it. The web service works fine up until I generate the proxy on the other side.
    ERROR An error occurred for port: {http://buslogic/}MyWebService1SoapHttpPort: no serializer is registered for (class buslogic.runtime.....
    I saved the file before I added the proxy and the wsdl looks the same between the working one and the non working one. I can not pin point the when the change to the web service is occuring. It seemed to work once all the way up until I had a ADF page trying to retrieve data, another time it failed when the proxy was created.
    I can get the version that I saved to work immediately after the version that does not fails.
    Any help would be greatly appreciated,
    Dan

  • Error running demo PL/SQL consuming web services

    I downloaded and installed the code from:
    http://technet.oracle.com/tech/webservices/htdocs/samples/dbwebservice/DBWebServices_PLSQL.html
    on Oracle 9i version 2 (on both Windows and Solaris).
    But I got the following error running the local time
    demo:
    ORA-29273: HTTP request failed
    ORA-06512: at "SYS.UTL_HTTP", line 1022
    ORA-12545: Connect failed because target host or object does not exist
    ORA-06512: at "XN.DEMO_SOAP", line 72
    ORA-06512: at "XN.TIME_SERVICE", line 13
    ORA-06512: at line 2
    The error occurs on this line:
    http_req := utl_http.begin_request(url, 'POST','HTTP/1.0');
    Can anybody tell me what I do wrong? Thanks a lot!
    Also, is there any alternative ways to consume web services
    using PL/SQL only? Many thanks!
    Henry X.

    Mike,
    Thanks so much for your help. I tried your code just now.
    Same error:
    ORA-30625: method dispatch on NULL SELF argument is disallowed
    ORA-06512: at "XN.DEMO_SOAP", line 50
    ORA-06512: at "XN.DEMO_SOAP", line 83
    ORA-06512: at "XN.TIME_SERVICE", line 27
    ORA-06512: at line 7
    Let me post the code I am using. Note that
    I removed the code for using proxy in time_service.
    Henry
    -- code for calling the time_service
    DECLARE
    ZIPCODE VARCHAR2(200);
    v_Return VARCHAR2(200);
    BEGIN
    ZIPCODE := '94065';
    v_Return := TIME_SERVICE.GET_LOCAL_TIME(ZIPCODE => ZIPCODE);
    DBMS_OUTPUT.PUT_LINE('v_Return = ' || v_Return);
    END;
    -- code for the package demo_soap
    CREATE OR REPLACE PACKAGE demo_soap AS
    TYPE request IS RECORD (
    method VARCHAR2(256),
    namespace VARCHAR2(256),
    body VARCHAR2(32767));
    TYPE response IS RECORD (
    doc xmltype);
    FUNCTION new_request(method IN VARCHAR2,
    namespace IN VARCHAR2)
    RETURN request;
    PROCEDURE add_parameter(req IN OUT NOCOPY request,
    name IN VARCHAR2,
    type IN VARCHAR2,
    value IN VARCHAR2);
    FUNCTION invoke(req IN OUT NOCOPY request,
    url IN VARCHAR2,
    action IN VARCHAR2) RETURN response;
    FUNCTION get_return_value(resp IN OUT NOCOPY response,
    name IN VARCHAR2,
    namespace IN VARCHAR2) RETURN VARCHAR2;
    END;
    CREATE OR REPLACE PACKAGE BODY demo_soap AS
    FUNCTION new_request(method IN VARCHAR2,
    namespace IN VARCHAR2)
    RETURN request AS
    req request;
    BEGIN
    req.method := method;
    req.namespace := namespace;
    RETURN req;
    END;
    PROCEDURE add_parameter(req IN OUT NOCOPY request,
    name IN VARCHAR2,
    type IN VARCHAR2,
    value IN VARCHAR2) AS
    BEGIN
    req.body := req.body ||
    '<'||name||' xsi:type="'||type||'">'||value||'</'||name||'>';
    END;
    PROCEDURE generate_envelope(req IN OUT NOCOPY request,
    env IN OUT NOCOPY VARCHAR2) AS
    BEGIN
    env := '<SOAP-ENV:Envelope
    xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/1999/XMLSchema">
    <SOAP-ENV:Body><'||req.method||' '||req.namespace||'
    SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">'||
    req.body||'</'||req.method||'></SOAP-ENV:Body></SOAP-ENV:Envelope>';
    END;
    PROCEDURE show_envelope(env IN VARCHAR2) AS
    i pls_integer;
    len pls_integer;
    BEGIN
    i := 1; len := length(env);
    WHILE (i <= len) LOOP
    dbms_output.put_line(substr(env, i, 60));
    i := i + 60;
    END LOOP;
    END;
    PROCEDURE check_fault(resp IN OUT NOCOPY response) AS
    fault_node xmltype;
    fault_code VARCHAR2(256);
    fault_string VARCHAR2(32767);
    BEGIN
    fault_node := resp.doc.extract('/soap:Fault',
    'xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/');
    IF (fault_node IS NOT NULL) THEN
    fault_code := fault_node.extract('/soap:Fault/faultcode/child::text()',
    'xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/').getstringval();
    fault_string := fault_node.extract('/soap:Fault/faultstring/child::text()',
    'xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/').getstringval();
    raise_application_error(-20000, fault_code || ' - ' || fault_string);
    END IF;
    END;
    FUNCTION invoke(req IN OUT NOCOPY request,
    url IN VARCHAR2,
    action IN VARCHAR2) RETURN response AS
    env VARCHAR2(32767);
    http_req utl_http.req;
    http_resp utl_http.resp;
    resp response;
    BEGIN
    generate_envelope(req, env);
    -- show_envelope(env);
    http_req := utl_http.begin_request(url, 'POST','HTTP/1.0');
    utl_http.set_header(http_req, 'Content-Type', 'text/xml');
    utl_http.set_header(http_req, 'Content-Length', length(env));
    utl_http.set_header(http_req, 'SOAPAction', action);
    utl_http.write_text(http_req, env);
    http_resp := utl_http.get_response(http_req);
    utl_http.read_text(http_resp, env);
    utl_http.end_response(http_resp);
    resp.doc := xmltype.createxml(env);
    resp.doc := resp.doc.extract('/soap:Envelope/soap:Body/child::node()',
    'xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"');
    -- show_envelope(resp.doc.getstringval());
    check_fault(resp);
    RETURN resp;
    END;
    FUNCTION get_return_value(resp IN OUT NOCOPY response,
    name IN VARCHAR2,
    namespace IN VARCHAR2) RETURN VARCHAR2 AS
    BEGIN
    RETURN resp.doc.extract('//'||name||'/child::text()',
    namespace).getstringval();
    END;
    END;
    -- code for the package time_service
    CREATE OR REPLACE PACKAGE time_service AS
    FUNCTION get_local_time(zipcode IN VARCHAR2) RETURN VARCHAR2;
    END;
    CREATE OR REPLACE PACKAGE BODY time_service AS
    -- Location of Web service definition
    -- http://www.alethea.net/webservices/LocalTime.asmx?WSDL
         FUNCTION get_local_time(zipcode IN VARCHAR2) RETURN VARCHAR2 IS
                   req demo_soap.request;
                   resp demo_soap.response;
         BEGIN
              req := demo_soap.new_request('LocalTimeByZipCode',
              'xmlns="http://www.alethea.net/webservices/"');
              demo_soap.add_parameter(req, 'ZipCode', 'xsd:string', zipcode);
              resp := demo_soap.invoke(req,
              'http://www.alethea.net/webservices/LocalTime.asmx',
              'http://www.alethea.net/webservices/LocalTimeByZipCode');
              RETURN demo_soap.get_return_value(resp, 'LocalTimeByZipCodeResult',
                        'xmlns="http://www.alethea.net/webservices/"');
         END;
    END;

  • Consume web service in ABAP proxy with SOAP header

    Hi Thomas ,
    I am trying to consume web service in  ABAP . I have followed the procedure from one of your web blog <a href="/people/thomas.jung3/blog/2004/11/17/bsp-a-developers-journal-part-xiv--consuming-webservices-with-abap a Developer's Journal Part XIV - Consuming WebServices with ABAP</a> . (640 release).
    I need to pass SOAP header along with SOAP body. As you mentioned I have used if_wsprotocol_ws_header interface to pass header but it is still failing.
    Please see below code and please give some direction to fix the issue.
    1.Create ABAP proxy for WSDL (http://ws.strikeiron.com/SwanandMokashi/StockQuotes?WSDL). It has created structures only for SOAP body.
    2.Create Logical port
    3.Create following program to call proxy
    REPORT  zproxy.
    DATA: ref_stock TYPE REF TO zzco_stock_quotes_soap ,
          ws_header TYPE REF TO if_wsprotocol_ws_header,
          name TYPE string,
          namespace TYPE string.
    TRY.
        CREATE OBJECT ref_stock
      get WS_HEADER protocol
        ws_header ?= ref_stock->get_protocol('IF_WSPROTOCOL_WS_HEADER').
      set somehow header as iXML-DOM tree
        DATA: ixml TYPE REF TO if_ixml,
              xml_document TYPE REF TO if_ixml_document,
              xml_root TYPE REF TO if_ixml_element,
              xml_element TYPE REF TO if_ixml_element,
              xml_node TYPE REF TO if_ixml_node.
        DATA l_xstring        TYPE xstring.
        DATA l_string         TYPE string.
        FIELD-SYMBOLS <fs_xstring> TYPE xstring.
      Additional Header:
        CONCATENATE
    '<soap:Header>'
    '<s1:LicenseInfo xmlns:s1="http://ws.strikeiron.com">'
    '<s1:RegisteredUser>'
    '<s1:UserID>[email protected]</s1:UserID>'
    '<s1:Password>aaaaaaaa</s1:Password>'
    '</s1:RegisteredUser></s1:LicenseInfo>'
    '</soap:Header>' INTO l_string.
      convert to xstring
        l_xstring = cl_proxy_service=>cstring2xstring( l_string ).
        IF NOT l_string IS INITIAL.
        create iXML DOM document from XML xstring
          CALL FUNCTION 'SDIXML_XML_TO_DOM'
            EXPORTING
              xml           = l_xstring
            IMPORTING
              document      = xml_document
            EXCEPTIONS
              invalid_input = 1
              OTHERS        = 2.
          IF sy-subrc = 0 AND NOT xml_document IS INITIAL.
            xml_root = xml_document->get_root_element( ).
            xml_element ?= xml_root->get_first_child( ).
          add header element by element to SOAP header
            WHILE NOT xml_element IS INITIAL.
              name = xml_element->get_name( ).
              namespace = 'http://swanandmokashi.com' . "xml_element->get_namespace_uri( ).
              IF NOT xml_element IS INITIAL.
              ENDIF.
              ws_header->set_request_header(
                          name = name
                          namespace = namespace
                          dom = xml_element ).
              xml_element ?= xml_element->get_next( ).
            ENDWHILE.
          ENDIF.
        ENDIF.
      CATCH cx_ai_system_fault .
    ENDTRY.
    *Call soap body using abap proxy class.
    DATA: get_quotes TYPE zzget_quotes_soap_out .
    DATA: get_quotes1 TYPE zzget_quotes_soap_in .
    get_quotes1-quote_ticker = 'GE'.
    TRY.
        CALL METHOD ref_stock->get_stock_quotes
          EXPORTING
            get_quotes1 = get_quotes1
          IMPORTING
            get_quotes  = get_quotes.
      CATCH cx_ai_system_fault .
      CATCH cx_ai_application_fault .
    ENDTRY.
    4.It is throwing cx_ai_system_fault error.
    SOAP details:
    Input:
    <?xml version="1.0" encoding="utf-8"?>
    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:enc="http://schemas.xmlsoap.org/soap/encoding" >
    <soap:Header>
    <s1:LicenseInfo xmlns:s1="http://ws.strikeiron.com">
    <s1:RegisteredUser>
    <s1:UserID>[email protected]</s1:UserID>
    <s1:Password>aaaaaaaa</s1:Password>
    </s1:RegisteredUser>
    </s1:LicenseInfo>
    </soap:Header>
    <soap:Body>
    <tns:GetQuotes xmlns:tns="http://swanandmokashi.com">
    <tns:QuoteTicker>GE</tns:QuoteTicker>
    </tns:GetQuotes>
    </soap:Body>
    </soap:Envelope>
    Thanks,
    Kavitha.

    Hi ,
    Thank you for the response. Did you passed user email and password ([email protected] /aaaaaaaa) part of licenseinfo->resisteredUser along with Quoteticker GE in analyzer?
    <a href="http://www.strikeiron.com/Analyzer/OnlineAnalyzer.aspx?WSDL=http://ws.strikeiron.com/SwanandMokashi/StockQuotes?WSDL">ANALYZER</a>
    Thanks,
    Kavitha.

  • Biztalk 2010 - Consume Web Service with Certificate

    Hi
    I have to consume a java web service with Biztalk that requires authentication via a client certificate. Until now I have not been able to consume any web service where any kind of authentication was needed. Simple web services without authentication are
    no problem. Also using SoapUI works perfectly fine.
    I am generating the XSDs and the port binding with the WCF wizard in VS2010. I've read several comments that it's not possible to consume web services with the WCF-WSHttp adapter when the message format should be SOAP 1.1. Therefore I'm trying with the WCF-BasicHttp
    and WCF-Custom adapters, but I did not suceed in receiving a positive response yet.
    The web service I want to consume uses a client certificate (with a private key) and two root certificates. When I use the BasicHttp adapter I choose either 'Transport' or 'TransportWithMessageCredential' but none of them work. I also have to supply a client
    and a service certificate. I always use the one with the private key for the client but I'm not sure which one I have to use for the service. Is there a possibility that I have to provide both root certificates and if so, how can I achieve this?
    Hope the question makes sense somehow... thanks for any input.
    Error message that I receive currently is that the server needs a client certificate. However I attached it in the send port properties under the tab "Security" => mode "TransportWithMessageCredential".

    Adapter: WCF-Custom
    Binding: customBinding
    Cannot send pictures (yet).
    <configuration>
    <enterpriseLibrary.ConfigurationSource selectedSource="ESB File Configuration Source" />
    <system.serviceModel>
    <client>
    <endpoint address="...." behaviorConfiguration="EndpointBehavior" binding="customBinding" bindingConfiguration="ReceiptBinding" contract="BizTalk" name="WebServicePort" />
    </client>
    <behaviors>
    <endpointBehaviors>
    <behavior name="EndpointBehavior">
    <clientCredentials>
    <clientCertificate findValue="..." x509FindType="FindByThumbprint" />
    <serviceCertificate>
    <defaultCertificate findValue="..." storeLocation="LocalMachine" storeName="AuthRoot" x509FindType="FindByThumbprint" />
    </serviceCertificate>
    </clientCredentials>
    </behavior>
    </endpointBehaviors>
    <serviceBehaviors>
    <behavior name="ServiceBehavior" />
    </serviceBehaviors>
    </behaviors>
    <bindings>
    <customBinding>
    <clear />
    <binding name="ReceiptBinding">
    <textMessageEncoding messageVersion="Soap11" />
    <security authenticationMode="MutualCertificate" />
    <httpsTransport proxyAuthenticationScheme="Basic" requireClientCertificate="true" />
    </binding>
    </customBinding>
    </bindings>
    </system.serviceModel>
    </configuration>

  • How to consume Web Service with Password digest from PLSQL

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

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

  • Consuming Web Services with ABAP - WSDL

    Hi All,
    I Want to consume web service in abap, i found lot of documents,Here i am having data in the internal table i need to pass
    it to wsdl file, The Web Service or Proxy generates a WSDL file. So this WSDL file can be consumed on ABAP Front and Encrypt the Data that is to be sent to the Banks.
    I found the input and output, Where i can find the method generated or we need to create it
    CALL METHOD io_clientproxy->XXXXXXXXXXXX
    please let me have your valuable ideas
    Thanks in advance,
    Arun.

    Hi Miguel,
    I have not heared about SPROXY, Here i found some code,which calls a web service method and where it is from.
    when i double click on my proxy it shows me some method.IF_PROXY_BASIS_INTERNAL~CREATE_FRAMEWORK
    this is the one web service method. and i meed to pass the internal table data to WSDL file.
    *-- create web service proxy class instance
    TRY.
        CREATE OBJECT io_clientproxy
          EXPORTING
            logical_port_name = 'LP4'.
      CATCH cx_ai_system_fault.
    ENDTRY.
    *-- call web service methods
    TRY.
        CALL METHOD io_clientproxy->get_airport_information_by_is
          EXPORTING
            input  = input
          IMPORTING
            output = output.
      CATCH cx_ai_system_fault.
      CATCH cx_ai_application_fault.
    ENDTRY.
    *-- text processing
    output_string = output-get_airport_information_by_is.
    REPLACE ALL OCCURRENCES OF
        '<' IN output_string WITH '<' .
    REPLACE ALL OCCURRENCES OF
    '>' IN output_string WITH '>' .
    REPLACE ALL OCCURRENCES OF
    'xmlns=' IN output_string WITH 'xmlns:xsl=' .
    *-- parsing
    TRY .
        CALL TRANSFORMATION ('Y_AIRPORT_XML2ABAP')
                SOURCE XML output_string
                RESULT     outtab = outtab.
      CATCH cx_xslt_exception INTO xslt_err.
        DATA: s TYPE string.
        s = xslt_err->get_text( ).
        WRITE: ': ', s.
        STOP.
    ENDTRY .
    Regards,
    Arun.

  • Consuming Web Service Issues

    Hello All,
    I appreciate any help in getting me pointed in the right
    Direction.
    I am trying to pull values from my vender's web services.
    They required that I place .wsdl file on my server then call to the
    local file which will then make calls to their server on the
    Internet. I placed the .wsdl file on my webserver and then
    referenced it via cfinvoke command. I keep getting the following
    error no mater what parameters I change.
    "Web service operation getDefaultVehicleAndValueByVin with
    parameters {vehicleRequest={3HGCM56477G705152}} cannot be found."
    Here is my Code. Any ideas or where I can go to get me jump
    started would be great. I tried googling but find very basic
    examples.
    Thanks
    Craig

    Making you put the wsdl file on your local machine is very
    bad architecture. It's a mess to support. What if it changes? Then
    they have to send new wsdl files out to everyone that is using
    their webservice. You might want to point that out to them.
    Even though the "?wsdl" is often the syntax used in web
    services to retrieve the wsdl file it's not required and wouldn't
    be used for the local wsdl file. Though you do put the soap port in
    the URL for a remote call.
    I found with the web services I have to call, with the
    complex types the only way I could get it to work was by using
    cfhttp with a post and setting the SOAPACTION to the method to
    call. Here is one example, and there are others out there.
    http://www.jamesnetherton.com/blog/index.cfm/2007/1/14/Invoking-a-webservice-using-CFHTTP
    I find that when you have many complex types that Coldfusion
    is about as easy to use with web services as carrying an 800 lb.
    gorilla.
    Jim

Maybe you are looking for

  • Currency translation problem

    Dear All, I am trying to create  the currency translation type and use it in the Bex Designer. But its not converting the values at all. Output required:- Need to convert all INR values to fixed USD currency. Source currency is always INR and target

  • HT204387 How to pair my iPad with my friends iPod 4th gen

    How to pair my iPad with my friends iPod 4th gen

  • Which table stores this value Transmission Servlet Base URL

    Hi All, EBS r12 12.1.3 From the screen in Payment Update Payment System: FirstDataNorth i am looking for table that stores this value Transmission Servlet Base URL did look in these tables FND_PROFILE*but not available. Please help! Regards,

  • Mails disappearing after MacOSX 10.8.4 update

    Following the update to MacOSX 10.8.4, all new emails incoming from any accounts (i.e. not iCloud only) are disappearing. This affects the Mac, iPhone, iPad, etc. With Mail app shutdown, mails are coming correctly (not disappearing) on the iDevices (

  • Pulse detection Mood Lamp

    Hi Guys, Im doing my Final Year Project and i have a lot of issues to solve and im stuck. i hope somebody can help me. Besically, My groupmate and myself have decided to create something called the Pulse detection Mood Lamp. This is how we hope it wi