Consuming HTTPS Web Service

In our application, we are trying to consume a web service that only supports HTTPS (https://gatewaybeta.fedex.com/web-services) and are having trouble getting Apex to function properly. In fact, when we try to finish defining the web service, Apex (Apache) gives us a HTTP 400 (Bad Request) error. We think this might be related to the web service only supporting HTTPS, but not sure.
I know we need a wallet for the PL/SQL engine to use to connect to HTTPS, but I can't find any documentation on putting that together (for Apex, I've done it using UTL_HTTP).
Has anybody else encountered this issue? If so, how did you resolve it?
Thanks in advance,
-djbckr

Same issue here.
I did a little research and looked at this thing called "on-line help" :)
First thing you've got to do is set up an SSL Wallet. See the Oracle Database Advanced Security Administrator's Guide at http://www.oracle.com/pls/db111/lookup?id=ASOAG160 or the one specific to your version of the database.
We just re-used the wallet we set up for our our code that calls utl_http and dbms_ldap over SSL. Our wallet is empty except for the CA root signing certificates for the CA that signed our app server's ssl cert. In short if you can get utl_http to fetch via SSL your web services WSDL file, then I think you'll be OK.
Then you need to configure the wallet for apex to use:
1) login to internal workspace as admin
2) Click "manage service"
3) Click Instance Settings
4) Under the wallet setting put the path to your wallet using file:/path/to/your/wallet/directory format
5) Under the wallet setting enter your wallet password and check the box to "change the wallet password". This doesn't actually change the password (I don't think) but rather it sets the password setting somewhere inside the depths of Apex's configuration.
6) Apply changes.
7) Logout as admin
Now set up your web service:
1) Go back to your workspace and application and click "Shared Components" then "Web Service References".
2) Click "Create Web Service Reference"
3) We don't use UDDI so I clicked no on search a uddi registry...
4) I pasted in my https://xxxxx/service/serviceendpoing?WSDL url in the WSDL location field. We don't use basic auth so left that blank.
5) When I clicked "Next" Apex had consumed the WSDL url and shown me my parameters which is farther along than I got when the wallet wasn't configured. At least it is looking at the WSDL over https!
6) You are on your own after this as I'm learning with you...
By the way, I found all the documentation for this when I clicked the "WSDL Location" label in step 4 of configuring my web service. It pulled up context sensitive help (imagine that ;) and in the context sensitive help window there was a "Help" link. Clicked that and it took me to the "Advanced Programming Techniques" in the Apex "Application Builder's Guide".
Thanks apex developers for the good documentation!
Hope this helps!
PS I forgot to mention I'm using Apex 3.2 on 11gEE.
Edited by: mcallister on Jun 3, 2009 11:25 AM

Similar Messages

  • TNS: lost contact error consuming https web services

    Hi,
    I'm trying this piece of pl/sql code and I'm getting TNS: lost contact error while trying to retrieve soap response. What could be wrong? I'm using oracle 10.2.0.1.0 database. Thanks in advance.
    declare
    envio varchar2(32767);
    peticion UTL_HTTP.req;
    respuesta UTL_HTTP.resp;
    cadena varchar2(32767);
    begin
    envio := 'xxx'; -- soap request
    Utl_Http.Set_Response_Error_Check ( enable => true );
    Utl_Http.Set_Detailed_Excp_Support ( enable => true );
    utl_http.set_wallet('file:/oracle/wallets','xxx');
    peticion := UTL_HTTP.begin_request ('https://xxx','POST','HTTP/1.1');
    UTL_HTTP.set_header(peticion, 'Content-Type', 'text/xml');
    UTL_HTTP.set_header(peticion, 'Content-Length', LENGTH(envio));
    UTL_HTTP.set_header(peticion, 'SOAPAction','');
    UTL_HTTP.write_text(peticion,envio);
    respuesta := UTL_HTTP.get_response(peticion);
    UTL_HTTP.read_text(respuesta, envio);
    UTL_HTTP.end_response(respuesta);
    dbms_output.put_line(envio);
    exception
    when Utl_Http.Request_Failed then
    Dbms_Output.Put_Line ( 'Request_Failed: ' || Utl_Http.Get_Detailed_Sqlerrm );
    when Utl_Http.Http_Server_Error then
    Dbms_Output.Put_Line ( 'Http_Server_Error: ' || Utl_Http.Get_Detailed_Sqlerrm );
    when Utl_Http.Http_Client_Error then
    Dbms_Output.Put_Line ( 'Http_Client_Error: ' || Utl_Http.Get_Detailed_Sqlerrm );
    when others then
    Dbms_Output.Put_Line ('Otros: ' || SQLERRM);
    end;

    The problem is a database bug:
    Bug 5575771 UTL_HTTP cannot handle https connections without a content-length
    If UTL_HTTP is used to retrieve an HTTPS response with no content-length, it
    throws an ORA-12547 on the final read (if the final read is shorter than the
    buffer supplied).
    Workaround:
    Include a Content-Length section on all responses.
    (This may not be possible since some responses may not
    be under your control)
    Message was edited by:
    [email protected]

  • WebDynpro Consuming a Web Service via SSL (https)

    Hello dovelopers,
    i want to consume a Web Service in a WebDynpro Application via https.
    can anybody give me a few links to pdfs etc.
    Thank You
    Michel

    Try this:
    Are you trying to create https trust relation ship between two SAP Portals or SAP Portal to Non Sap Portal?
    Help on How to Consume a Web Service in SAP Portal?
    http://help.sap.com/saphelp_nw04/helpdata/en/f5/30c5aca7f92f418d889b99ccc9ee08/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/df/a08340d990ce62e10000000a155106/content.htm
    http://www.sapportalguide.com/web_services.html
    Here the documents helps you how to integreate https authentication betweeen two portals:
    http://help.sap.com/saphelp_nw2004s/helpdata/en/43/2235260b413fe1e10000000a11466f/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/62/881e3e3986f701e10000000a114084/frameset.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/14/29236de1864c6e8d46e77192adaa95/frameset.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/d3/41c8efb31d11d5993800508b6b8b11/frameset.htm
    Thanks
    Krishna

  • How to consume a web service provided by third party system from SAP system

    Hi Friends,
    Could any of you provide me a clear picture on how to consume a web service from SAP system and is provided by a third party system?
    Do we get an URL to create a client proxy for consuming the web service?
    Thanx in advance,
    Ram

    Hi Ram,
    of course you cannot supply the WSDL URL. Inside the WSDL (just view it in your browser) you find (usually but not necessary) towards the end something like
    <soap:address location="http://www.weather.gov/forecasts/xml/SOAP_server/ndfdXMLserver.php"/>
    which is the actual adress of the service.
    An example service can be found here:
    <a href="http://www.weather.gov/xml/">National Digital Forecast Database</a>
    containing the WSDL URL at
    <a href="http://www.weather.gov/forecasts/xml/DWMLgen/wsdl/ndfdXML.wsdl">this address</a>.
    You might also want to browse for the amazon webservices which allow you to embed queries against amazon into your application.
    have fun,
    anton

  • No result while creating a service consumer with Web Service Wizzard

    Hi,
    I've tried to create a service consumer with Web Service Wizzard in SE80 by using URL/HTTP Destination but nothing happens. After the popup with logondata for the WSDL I get the CRM start screen and nothing has been created in the given package.
    technical details:
    I use a CRM 5.0 system with SP15 (SAPKB70015).
    I created the provider service at a 7.10 system with SP5 (SAPKB71005) via SPROXY, SOAMANAGER and WSPUBLISH and get the WSDL-URL from Service Registry.
    The Service Registry of the 7.10 system serves as central Service Registry.
    Has anybody an idea ?
    Christoph

    Guy,
    Thanks for your reply.
    This problem has been solved. Since I haven't turned on everything that to use transaction SOAMANAGER needs. After complete the switch-on works, the problem never happens again.
    Thanks again.

  • Error when consuming a web service in CF 11

    I am consuming a web service in ColdFusion what was written in .NET.  Some methods of the web service work fine, but some we get the below error.  We have identified the issue is the name of one of the properties in the web service appears to be the issue.  The property name is ID.  This is a very common property name so I would think someone has run across this before.  It appears that maybe ID is a default property for Axis?  I can dump the method that works and I see there is a getID() method with a return type of org.apache.axis.types.Id.
    If we change the name of the property to something other than ID it works, but this will cause us to refactor a lot of code.
    Here is the error I get when I try to call GetRoles method, which contains an ID property:
    Cannot perform web service invocation GetRoles. The fault returned when invoking the web service operation is:
    AxisFault
    faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
    faultSubcode:
    faultString: org.xml.sax.SAXException: For input string: "i1"
    java.lang.NumberFormatException: For input string: "i1"
    faultActor:
    faultNode:
    faultDetail:
    {http://xml.apache.org/axis/}stackTrace:org.xml.sax.SAXException: For input string: "i1"
    java.lang.NumberFormatException: For input string: "i1"
    at org.apache.axis.encoding.ser.BeanDeserializer.onStartElement(BeanDeserializer.java:462)
    at org.apache.axis.encoding.DeserializerImpl.startElement(DeserializerImpl.java:393)
    at org.apache.axis.encoding.ser.BeanDeserializer.startElement(BeanDeserializer.java:154)
    at org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java: 1048)
    at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:165)
    at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1141)
    at org.apache.axis.message... ''
    I am running CF 11 Update 4.

    I am not passing any parameters to the method (it has no parameters).  On the ColdFusion side I do not use i1 anywhere.  I will check with the .net developer on Monday to see if he is using it anywhere in his code.  If he is he is using in consistently as the only methods that work from his service are those that do not have an ID property.  All services with an ID property give me the same error message.

  • Consuming External Web Services in Web Dynpro Java

    Hi All,
    I an trying to consume external web service in Web dynpro java using Adaptive Web Service Model.
    But getting below mentioned error while executing the web service
    Exception on execution of web service with WSDL URL 'D:\Web Service Project\CurrencyConvertor.asmx.xml' with operation 'ConversionRate' in interface 'CurrencyConvertorSoap'
    Steps i followed are as below:
    1. Created  Adaptive Web Service Model for this i select WSDL source as "Local File System or URL"
    In next step i select No logical destination radio button and click on next
    In next step, browse the WSDL file and successfully import the WSDL file.
    2. After successfully importing the WSDL file i wrote below code in Init method:
    WebModel modelweb = new WebModel();               
    Request_ConversionRate reqConversion = new Request_ConversionRate(modelweb);
    ConversionRate conversion= new ConversionRate(modelweb);
    reqConversion.setConversionRate(conversion);
    wdContext.nodeRequest_ConversionRate().bind(reqConversion);
    3.After that execute the model - code is given below :
        IWDMessageManager manager = wdComponentAPI.getMessageManager();
        try
          wdContext.currentRequest_ConversionRateElement().modelObject().execute();
          wdContext.nodeResponse().invalidate();
          wdContext.nodeConversionRateResponse().invalidate();
        catch(Exception e)
          manager.reportException(e.getMessage(), false);
    Please let me know how to resolve this.
    Thanks
    Sandy

    Hi,
    You need to use destinations for metadata and modeldata.
    Configure those destination in Visula admin.
    you can refer to following link.
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/b2bc0932-0d01-0010-6d8e-cff1b2f22bc7
    Regards,
    Shruti.

  • Handling of SOAP Faults in SOAP Clients consuming PI Web services

    Hi there,
    the following is in regards to SOAP fault error handling in a SOAP client that consumes a Web Service published by PI.
    I have been reading a number of threads and blogs in regards to this topic and I am still left with some open questions which I hope to get some final answersclarifications through this thread.
    In particular the blogs
    Handling Web Service SOAP Fault Responses in SAP NetWeaver XI      - Handling Web Service SOAP Fault Responses in SAP NetWeaver XI
    XI: Propagation of meaningful error information to SOAP Client     - XI: Propagation of meaningful error information to SOAP Client
    have caused by attention.
    Both of these threads are realating to the Fault Message type one can use to return errors back to a SOAP Client (.Net, Java, etc.).
    In our scenario we published a number of Web Services through PI that provide functionality to integrate with an R3 back-end system using inbound ABAP Proxies.
    The services are standardised and will be consumed by a number of .NetJava applications and systems. The reason for the use of ABAP proxies is the customer specific application logic that is executed in the backend system. The Web services are synchronous and don't use ccBPM in the middle. Transformations are performed in PI combined with various lookups to set default values before the message is passed into the ABAP Framework of the R3 back-end system. The lookups are done against the R3 back-end system using the PI RFC Lookup feature.
    The inbound proxies currently return application errors as part of the response message back to the SOAP client. For more critical errors we introduced the use of Fault message types as the method to return the information back to the SOAP Client. This is all working satisfactory.
    The questions I have are as follows.
    1. When an error occurs at the IE level (e.g. mapping error), ABAP Proxy framework level (e.g. conversion from XML to ABAP format) or Adapter Framework level (Adapter releated error) a different SOAP fault message structure is returned to the SOAP Client than the one    used for the application errors. The SOAP fault message structure used in this case is the standard SOAP fault used by PI to return system errors back to the caller. For those SOAP fault messages there is no payload generated that could be mapped to the SOAP fault structure used for the application errors. This would be preferrable as there would be only one Fault message structure used for both inbound ABAP proxy generated fault messages and PI generated fault messages.
    Also the error messages generated by PI can be quite cryptic and difficult to interpret at the client end and could be filtered     ranslated during message mapping if the payload of the PI generated SOAP fault message could be accessed in a message mapping.
    Point 3 of the above thread 2759 indicates that this would be possible but doesn't outline how. Could somebody please clarify this for me as I don't believe that this is really possible ???.
    My idea instead was to use the PI SOAP fault message structure to also return application errors. Therefore I would create a Fault message type that matches the PI SOAP fault structure. This would enable the SOAP Client to handle only one SOAP Fault error structure. Would that be something to look into instead ?????.
    2. We have been looking at using the integrated WEB AS SOAP adapter instead of using the AF Sender SOAP adapter. While playing with this we encountered differences in the content returned through the SOAP fault generated by PI. A sample is below. Shouldn't the content of these SOAP faults be the same if the error that caused it is the same. Also the SOAP fault returned by the IE SOAP adapter is much more    useful in this particular case. Both errors below are the same, a conversion error from XML to ABAP took place in the inbound ABAP proxy framework of the back-end system.
    SOAP fault returned when using SOAP Sender adapter of AF
    <!see the documentation>
    <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
       <SOAP:Body>
          <SOAP:Fault>
             <faultcode>SOAP:Server</faultcode>
             <faultstring>Server Error</faultstring>
             <detail>
                <s:SystemError xmlns:s="http://sap.com/xi/WebService/xi2.0">
                   <context>XIAdapter</context>
                   <code>ADAPTER.JAVA_EXCEPTION</code>
                   <text>com.sap.aii.af.ra.ms.api.DeliveryException: XIProxy:PARSE_APPLICATION_DATA:
         at com.sap.aii.adapter.xi.ms.XIEventHandler.onTransmit(XIEventHandler.java:455)
         at com.sap.aii.af.ra.ms.impl.core.queue.consumer.CallConsumer.onMessage(CallConsumer.java:134)
         at com.sap.aii.af.ra.ms.impl.core.queue.Queue.run(Queue.java:916)
         at com.sap.aii.af.ra.ms.runtime.MSWorkWrapper.run(MSWorkWrapper.java:56)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:102)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:172)</text>
                </s:SystemError>
             </detail>
          </SOAP:Fault>
       </SOAP:Body>
    </SOAP:Envelope>
    SOAP fault using integrated SOAP adapter of PI IE
    <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
       <SOAP:Body>
          <SOAP:Fault>
             <faultcode>SOAP:Server</faultcode>
             <faultstring>System Error</faultstring>
             <detail>
                <s:SystemError xmlns:s="http://sap.com/xi/WebService/xi2.0">
                   <context/>
                   <code>ABAP.PARSE_APPLICATION_DATA</code>
                   <text>Error during XML => ABAP conversion (Request Message; error ID: CX_ST_DESERIALIZATION_ERROR; (/1SAI/TXSBE20FF604BAFEF8D990A XML Bytepos.: 564  XML Path: ns1:CreatePORequest(1)POHEADER(2)COMP_CODE(1) Error Text: Data loss occurred when converting ############################## Kernel ErrorId: CONVT_DATA_LOSS))</text>
                </s:SystemError>
             </detail>
          </SOAP:Fault>
       </SOAP:Body>
    </SOAP:Envelope>
    I have been reading threads for hours without being able to find one that answers questions 1 or provides a blog that outlines the approach one should take for error handling in SOAP clients that consume PI Web Services (and covers both PISystem generated faults and faults raised in Proxies).
    There may already be a blog or thread and I just missed it.
    Any comments are welcome.
    Thanks. Dieter

    Hi Dieter,
    As Bhavesh already mentioned fault messages are used for application errors. The same is described in SAP XI help:
    http://help.sap.com/saphelp_nw04/helpdata/en/dd/b7623c6369f454e10000000a114084/frameset.htm
    In case of system error (e.g. field length too long in proxy call or error in XI/PI mapping) there seems to be no standard way of handling it and propagating the response to the consumer of webservice.
    Each system error is not recognized by SOAP adapter and SOAP adapter exception is raised.
    The only bizzare solution that I can see is developing an adapter module and transport wrong message to standard fault message before delivering it to adapter engine:
    http://help.sap.com/saphelp_nw04/helpdata/en/a4/f13341771b4c0de10000000a1550b0/frameset.htm
    Kind regards,
    Wojciech
    btw nice thread

  • Issue in consuming a web service

    Hi All,
    We are consuming a  Web service ( Microsoft Share point ) through our Web dynpro Application.
    Every time we consume the web service , there is a popup for authentication to connect to the Share point server. The problem  is that  the popup actually appears in the SAP GUI client and not  as a web based popup hence it does not appear in the Web dynpro Application.
    On analysis in SOA MANAGER , it was found that the Logical Port that we make use of to connect to the Web service has a configuration of entering the User Name and a password.
    The Question is, Is it Mandatory to supply login credentials to the server from which the web service is consumed ? or is there any other configuration/setting  where we can consume the web service without login credentials ?.
    Any pointers/OSS notes are very much Appreciated.
    Thanks !

    hi,
    check  out these links :
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/244e7923-0a01-0010-5887-fe0b0c6dbb8d
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/30f1b585-0a01-0010-3d96-ad0ea291c4f9
    I hope u shud b clear wid ur query

  • Consuming a Web Service with WEB AS 6.40

    Hello,
    i try to consume a Webservice from the internet. I have configured the logical port and i created the client proxy as shown in the following real good weblog from
    Thomas Jung.
    /people/thomas.jung3/blog/2004/11/17/bsp-a-developers-journal-part-xiv--consuming-webservices-with-abap
    But when i try to test the proxy in SE80 I retrieve the following error:
    <CODECONTEXT>http://www.sap.com/xml_errorcodes</CODECONTEXT>
      <CODE>SOAP:111</CODE>
      <ERRORTEXT>Unallowed RFC-XML Tag (SOAP_EINVALDOC)</ERRORTEXT>
    What's wrong here? Someone can help me?
    Thanks for your help!
    Klaus

    We had the same error message for one of our Proxy Web Service calls.
    We tried to use an RFC instead of the URL, and performed a TEST CONNECTION.  And low and behold, we received an error message that was much more helpful than the "Unallowed RFC-XML Tag (SOAP_EINVALDOC)" message.
    The problem for us was that the Server that we were trying to consume the Web service from was blocking the IP address of our Web Application Server.
    We contacted the administrator, he verified that was the case, removed the restriction, and all is good now.
    Here was the message we saw when we tested it in the RFC:
    The Web server you are attempting to reach has a list of IP addresses that are not allowed to access the Web site, and the IP address of your browsing computer is on this list.  Please try the following: Contact the Web site administrator if you believe you should be able to view this directory or page.
    Hope this helps!

  • How to install and consume GroupWise Web Service (SOAP)

    Hello! I'm Razvan, programmer from Romnia, and I am new to GroupWise development.
    I am asking if anyone could help me with a C# Visual Studio 2010 example of how to install and consume GroupWise Web Service (SOAP).
    The documentation from novell site didn't help me, i didn't understant much of it.
    All I need is either a link to a documented GroupWise C# developer step-by-step tutorial, or some code examples.
    Can you please show me some code examples in C# with:
    1)loging in using a username and a password,
    2)retrieving contact list,
    3)retrieving appointment list,
    4)sending a mail,
    5)setting an appointment
    I don't know how to use "groupwise.wsdl" and customise it so that it points to our GroupWise server.
    Please, I really need this because I am working at a project right now which involves GroupWise integration.
    I hope I haven't disturbed anyone with my simple question.
    I know this might be a very simple question given the complexity of the other posts here, but that's why I really hope I will get an answer soon.
    Thank you very much!
    Signature:
    How old is the Orthodox faith?
    How old is the orthodox faith?

    Just a comment.
    The value for the version element should be "1.02"
    not "1.2".
    Preston
    >>> On Tuesday, March 01, 2011 at 8:06 AM,
    TheRomanian<[email protected]> wrote:
    > I have great news! After strong documentation yesterday and today, I've
    > just made a successfull example that actually connects to our GroupWise
    > server.
    >
    > I made it in PHP.
    >
    > I need an ASP.NET + C# application, but now is very simple to convert
    > it. I post the PHP code here for other people who in future might be
    > interested in finding out.
    >
    > So a simple PHP GroupWise Login code using "groupwise.wsdl" web
    > service:
    >
    >
    > require_once('./GWService/GroupwiseService.php');
    > require_once('FB.class.php');
    >
    > $classmap = array(
    > 'Authenication' => 'Authenication',
    > 'PlainText' => 'PlainText',
    > 'loginRequest' => 'loginRequest',
    > 'loginResponse' => 'loginResponse',
    > 'logoutRequest' => 'logoutRequest',
    > 'logoutResponse' => 'logoutResponse',
    > 'UserInfo' => 'UserInfo',
    > );
    >
    > $gwservice = new GroupwiseService(
    > "./WSDL/groupwise.wsdl",
    > array(
    > "location" => "http://11.150.40.78:8756/soap",
    > *Your GroupWise server IP:
    > and PORT*
    > "classmap" => $classmap,
    > "trace" => true)
    > );
    >
    > // do login
    > $pt = new PlainText();
    > $pt‑>username = *"YOUR GROUPWISE USERNAME"*;
    > $pt‑>password = *"YOUR GROUPWISE PASSWORD"*;
    >
    > $lr = new loginRequest();
    > $lr‑>auth = $pt;
    > $lr‑>language = "en";
    > $lr‑>version = "1.2";
    > $lr‑>application = "phpClient";
    >
    > $lres = $gwservice‑>loginRequest($lr);
    > //print_r($lres);
    >
    >
    > I Hope this will help others.
    >
    > ‑‑
    > Signature:
    >
    > How old is the Orthodox Faith?
    > 'How old is the orthodox faith?'
    > (http://www.orthodoxphotos.com/history.shtml)

  • Consuming a Web Service with ABAP in WAS 6.40 (SS3)

    Hi Everyone,
         Has anyone successfully consumed a web service (based on an EJB) that is published to the J2EE engine of their WAS 6.40 server by creating a proxy from the ABAP layer?
         We are encountering the following problem: When executing method of the proxy to call the Web Service on the J2EE engine, the CX_AI_SYSTEM_FAULT exception is triggered with the message "Unallowed RFC-XML Tag (SOAP_EINVALDOC)".
         This same problem has occurred with multiple web services, even though the proxy generation seems to execute without a problem.  Is there some system setting that could cause this?  We have run the SOAP Runtime trace, but only receive the same basic information about the problem.
         If anyone has any thoughts at all, I'd be grateful to hear them.
         Thanks,
            --Greg

    Hi,
    We encountered problems when consuming a foreign WS. It seems to be that RPC style WSDL isn't supported by the WAS 6.4 WS proxy. An interesting reading on this is
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/documents/a1-8-4/the difference between rpc and document style wsdl.article
    Eddy

  • Calling https web service POST method from ABAP

    Hi all,
    I'm having some problems trying to call a credit card https web service from ABAP on 2004s SP11. I'm not using a proxy server and a call from a test https page on my local machine works fine. The page does not require a certificate.
    Do I need to do anything in particular to make https work ? I've done calls to http services without any problems. The only difference from a programming perspective as far as I know is the scheme 2 instead of 1, and the server protocol changed to HTTPS.
    All is fine until  I call method http_client->receive, at that point I get a return code of 1, http_communication_failure. 
    Your suggestions & contributions will be greatly appreciated.
    Cheers,
    Wouter.
    report zcreditcardtest .
    data: wf_user type string .
    data: wf_password type string .
    data: rlength type i,
          txlen type string  .
    data: http_client type ref to if_http_client .
    data: wf_string type string .
    data: wf_string1 type string .
    data: wf_proxy type string ,
          wf_port type string .
    selection-screen: begin of block a with frame .
    parameters: crcard(16) type c lower case default '4242424242424242',
                cvn(4)     type c lower case default '564',
                year(2)    type c lower case default '07',
                month(2)   type c lower case default '11',
                amount(10) type c lower case default '100.00',
                cukey(4)   type c lower case default 'AUD',
                order(10)  type c lower case default 'AB1322-refund'.
    selection-screen skip 1.
    parameters: user(50) lower case,
                password(50) lower case ,
                p_proxy(100) lower case default '' ,
                p_port(4) default ''.
    selection-screen: end of block a .
    at selection-screen output.
      loop at screen.
        if screen-name = 'PASSWORD'.
          screen-invisible = '1'.
          modify screen.
        endif.
      endloop.
    start-of-selection .
      clear wf_string .
      concatenate
      'order.type=capture&customer.username=SOMEUSER'
      '&customer.password=SOMEPASSWORD'
      '&customer.merchant=SOMEMERCHANT'
      '&card.PAN=' crcard
      '&card.CVN=' cvn
      '&card.expiryYear=' year
      '&card.expiryMonth=' month
      '&order.amount=' amount
      '&customer.orderNumber=' order
      '&card.currency=' cukey
      '&order.ECI=IVR'
      '&customer.captureOrderNumber=' order
      '&order.priority=1'
      '&message.end=null'
      into wf_string .
      break-point.
      clear :rlength , txlen .
      rlength = strlen( wf_string ) .
      move: rlength to txlen .
      clear: wf_proxy, wf_port .
      move: p_proxy to wf_proxy ,
            p_port to wf_port .
      call method cl_http_client=>create
        exporting
          host          = 'api.somewhere.com'
          service       = '80'
          scheme        = '2'                        "https
          proxy_host    = wf_proxy
          proxy_service = wf_port
        importing
          client        = http_client.
      http_client->propertytype_logon_popup = http_client->co_disabled.
      wf_user = user .
      wf_password = password .
    * proxy server authentication
      call method http_client->authenticate
        exporting
          proxy_authentication = 'X'
          username             = wf_user
          password             = wf_password.
      call method http_client->request->set_header_field
        exporting
          name  = '~request_method'
          value = 'POST'.
      call method http_client->request->set_header_field
        exporting
          name  = '~server_protocol'
          value = 'HTTPS/1.0'.
      call method http_client->request->set_header_field
        exporting
          name  = '~request_uri'
          value = '/post/CreditCardAPIReceiver'.
      call method http_client->request->set_header_field
        exporting
          name  = 'Content-Type'
          value = 'application/x-www-form-urlencoded; charset=UTF-8'.
      call method http_client->request->set_header_field
        exporting
          name  = 'Content-Length'
          value = txlen.
      call method http_client->request->set_header_field
        exporting
          name  = 'HOST'
          value = 'api.somewhere.com:80'.
      call method http_client->request->set_cdata
        exporting
          data   = wf_string
          offset = 0
          length = rlength.
      call method http_client->send
        exceptions
          http_communication_failure = 1
          http_invalid_state         = 2.
      call method http_client->receive
        exceptions
          http_communication_failure = 1
          http_invalid_state         = 2
          http_processing_failed     = 3.
      if sy-subrc <> 0.
        message e000(oo) with 'Processing failed !'.
      endif.
      clear wf_string1 .
      wf_string1 = http_client->response->get_cdata( ).
    * Further Processing of returned values would go here.

    Well, finally got this running !
    First of all I needed to download SAP Cryptographic Software and install it on the Web Application Server. Added some parameters to the profile, then set up some nodes in strust. Note 510007 describes the full process.
    I then installed the certifcate I needed by opening the website in internet explorer and exporting it to a CER file and then importing it into the SSL client (Anonymous). The blog from Thomas Yung, "BSP a Developer's Journal Part XIV - Consuming WebServices with ABAP" describes the process of exporting and importing certificates.
    I then had to start the HTTPS service on my NW 2004s ABAP preview edition SP11. I set this up for port 443.
    /osmicm --> GOTO --> SERVICES --> SERVICE --> CREATE
    Then finally, the program needed a few changes :
      call method cl_http_client=>create
        exporting
          host          = 'api.somewhere.com'
          service       = '443'                       " <<-----  443 NOT 80
          scheme        = '2'                        "https
          ssl_id        = 'ANONYM'              " <<----- SSL_ID Added
          proxy_host    = wf_proxy
          proxy_service = wf_port
        importing
          client        = http_client.
    and further in the program (thanks Andrew !) :
      call method http_client->request->set_header_field
        exporting
    *   name  = '~server_protocol'             " <<<--- DELETE
          name  = '~request_protocol'         " <<<-- INSERT must be request
          value = 'HTTPS/1.0'.
    and presto, we can now consume a https webservice via a POST method from within an ABAP program ! Nice.... Can I give myself 10 points ?

  • How to test/consume asynchronous web services in SAP?

    Hi,
    How do we test/consume asynchronous web services in SAP - either version 4.7 or ECC6.0?
    TIA,
    Regards
    Deepthi

    Go through the following link to know how to consume web services using ABAP:
    [https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/media/uuid/20eb3174-41ab-2a10-a383-907faf60eed3|https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/media/uuid/20eb3174-41ab-2a10-a383-907faf60eed3]
    Regards,
    Siva.

  • ABAP code and konfiguration for consuming secure web services

    I need some help/links on how to create an abap program (on 4.6 or WAS 620, or 640 if not possible in older releases) to consume a web service with authentication using certificates based on WS security  (<a href="http://www.oasis-open.org/committees/wss">http://www.oasis-open.org/committees/wss</a>) or client certificates. The request must include attachment in DIME or base64 format (preferably DIME).
    On 4.6 I have used the FM HTTP_POST with the if_ixml interface to consume web services, but I don't know if it can handle https authentication and attachements.
    Message was edited by: Robert

    check out this weblog.
    <a href="/people/thomas.jung3/blog/2005/05/13/calling-webservices-from-abap-via-https">Calling WebServices from ABAP via HTTPS</a>
    Regards
    Raja

Maybe you are looking for

  • Run time error while running a webdynpro - urgent

    Hi Guys I am getting the following error while running the webdynpro. My Default view is a INPUT_VIEW. please see below runtime error Regards, Rahul =========================================================== The following error text was processed in

  • C4780 Can no longer be found wirelessly by 1 W7 PC

    Hey I recently got a C4780 and set it up on my network without problems.  Located it on 2 computers with a static IP address using WEP on my Linksys router.  After a couple days on the W7 laptop it no longer appeared in printers and could no longer l

  • Possible Hard Drive Issue?? How to test?

    I recently upgraded to Leopard this weekend, seems to be running "snappy" in some parts, but I might have an issue with HD possibly reading slow. Sometimes when I do certain functions (open certain files or programs) I get beachballing. This is the s

  • Macbook Pro i7 on Snow Leopard and Mountain Lion crashes randomly!!

    Hi, i been notice this issue a few months ago. The Crashes starts to appear using Adobe Photoshop CS4 while I use the transform tool my Mac start crashing and getting reboot, after several days having this issue my Mac start to crash randomly using C

  • Issue in Purchase Register

    Hi All, I am facing a  typical scenario while running the purchase register. Most of the grpo's that were created during the period of 01-04-09 to 30-09-09 are with the excise tax codes and while creation of the a/p invoices, the tax code has been ch