SOAP Adapter with application/x-www-form-urlencoded

You can use the content type "application/x-www-form-urlencoded" in a SOAP adapter?
Thank you.

I did the configuration below:
"Here you have to use below configuration parameters for Module
Transform.Class = com.sap.aii.messaging.adapter.Conversion
Transform.ContentType = application / x-www-form-urlencoded "
However, got the following error:
=======================================================================================================
  <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
- <!--  Inbound Message
  -->
- <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
  <SAP:Category>XIAdapterFramework</SAP:Category>
  <SAP:Code area="MESSAGE">GENERAL</SAP:Code>
  <SAP:P1 />
  <SAP:P2 />
  <SAP:P3 />
  <SAP:P4 />
  <SAP:AdditionalText>com.sap.engine.interfaces.messaging.api.exception.MessagingException: java.lang.ClassNotFoundException: com.sap.aii.messaging.adapter.Conversion -
Loader Info -
ClassLoader name: [sap.com/com.sap.aii.af.mod.trans.app] Living status: alive Direct parent loaders: [system:Frame] [service:servlet_jsp] [service:ejb] [library:engine.j2ee14.facade] [library:com.sap.base.technology.facade] [library:com.sap.aii.af.lib] [library:com.sap.aii.af.sdk.lib] [service:com.sap.aii.af.cpa.svc] [service:com.sap.aii.af.svc] [service:com.sap.aii.adapter.xi.svc] [library:com.sap.aii.adapter.lib] Resources: C:\usr\sap\PI1\DVEBMGS04\j2ee\cluster\apps\sap.com\com.sap.aii.af.mod.trans.app\EJBContainer\applicationjars\com.sap.aii.af.mod.trans.ejb.jar -
</SAP:AdditionalText>
  <SAP:Stack />
  <SAP:Retry>M</SAP:Retry>
  </SAP:Error>
=======================================================================================================
Any suggestion?
Thank you.
Regards,
Bruno

Similar Messages

  • Content-Type=application/x-www-form-urlencoded with UTF-8  data which servlet fails to interpret correctly .

    My Environment is Weblogic 6.1 SP2 on WIN2K.
    I have an HTTP client sending an HTTP request with
    Content-Type=application/x-www-form-urlencoded
    the data in HTTP request is in UTF-8. Note that HTTP client does not specify charset=UTF-8
    as part of the Content-Type.
    I have a servlet "VosXmlEvents" processing this HTTP request.
    The HTTP request contains data like &#8220;Zoë&#8221; which the servlet below
    interprets as &#8220;Zoë&#8221; causing me to think that my deployment settings
    might be wrong.
    My Deployment settings:
    In weblogic.xml deployment descriptor I have specified following:
    <charset-params>
    <!-- I specified this so that I can tell to weblogic that HTTP request data is
    UTF-8 so weblogic can successfully convert it to ISO-8859-1 as per Java servlet
    spec.-->
    <input-charset>
    <resource-path>/vos/events/xml/*</resource-path>
    <!-- I tried both UTF8 and UTF-8 and got same results-->
    <java-charset-name>UTF8</java-charset-name>
    </input-charset>
    <!-- I specified the the settings below just to be on the safe side, as I have
    seen java documentation, newsgroups etc. using slightly different, names for the
    same char encoding/canonical names . Java uses MIME preferred names,I think I
    dont have to do this but I hope specifying these should not do any harm either,
    am I correct in assuming it? (see reference 1 and 2. below for details)-->
    <charset-mapping>
    <iana-charset-name>ISO_8859-1:1987</iana-charset-name>
    <java-charset-name>ISO-8859-1</java-charset-name>
    </charset-mapping>
    <charset-mapping>
    <iana-charset-name>ISO_8859-1:1987</iana-charset-name>
    <java-charset-name>ISO8859_1</java-charset-name>
    </charset-mapping>
    <charset-mapping>
    <iana-charset-name>UTF-8</iana-charset-name>
    <java-charset-name>UTF-8</java-charset-name>
    </charset-mapping>
    <charset-mapping>
    <iana-charset-name>UTF-8</iana-charset-name>
    <java-charset-name>UTF8</java-charset-name>
    </charset-mapping>
    </charset-params>
    My web.xml has:
    <servlet>
    <servlet-name>VosXmlEvents</servlet-name>
    <servlet-class>some class name</servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name>VosXmlEvents</servlet-name>
    <url-pattern>/vos/events/xml/*</url-pattern>
    </servlet-mapping>
    According to Servlet spec. 2.3 sec. SRV.4.9 Request data encoding, cut pasting
    from spec below:
    "Currently, many browsers do not send a char encoding qualifier with the Content-Type
    header, leaving open the determination of the character encoding for reading HTTP
    requests. The default encoding of a request the container uses to create the request
    reader and parse POST data must be &#8220;ISO-8859-1&#8221;, if none has been
    specified by the client request. However, in order to indicate to the developer
    in this case the failure of the client to send a character encoding, the container
    returns null from the getCharacterEncoding method.
    If the client hasn&#8217;t set character encoding and the request data is encoded
    with a different encoding than the default as described above, breakage can occur.
    To remedy this situation, a new method setCharacterEncoding(String enc) has been
    added to the ServletRequest interface. Developers can override the
    character encoding supplied by the container by calling this method. It must be
    called prior to parsing any post data or reading any input from the request. Calling
    this method once data has been read will not affect the encoding."
    Q1. Should not <input-charset> related settings in weblogic.xml for a servlet
    helps container actually do some thing like setCharacterEncoding(String enc) on
    HTTP Request before it call the servlet?
    Q2. If not then that would mean I have to programatically call setCharacterEncoding(String
    enc)to correctly interpret my HTTP Request?
    Q3. If the answer to Q1 is "yes" then I will assume that getInputStream() or getReader()
    methods on the HttpServletRequest will give the chacter in the client encoded
    format which in this case is UTF-8, i.e I will get "Zoë" as in this example. Am
    I correct here?
    Reference:
    1. http://edocs.bea.com/wls/docs70/webapp/components.html#139932
    2. http://java.sun.com/j2se/1.3/docs/guide/intl/encoding.doc.html

    Stefan,
    Thanks for the information. I have the following question then.
    The Webserver I am interacting with does not recognize user and password provided in the channel. It accepts user and pwd in payload and in application/x-www-form-urlencoded  content type only.
    Sample Raw Post that server server requires looks like this
    User=yourname&Password=yourpassword&INPUT_XML=%3C%3Fxmlversion%3D%221.0%22standalone%3D%22no%22%3F%3E%3CDELIVERY%3E%3CMESSAGE%3E%0D%0A++++%3CDESTINATION_ADDR%3E%2B447900570205%3C%2FDESTINATION_ADDR%3E%%3C%2FMESSAGE%3E%0D%0A%0D%0A%3C%2FDELIVERY%3E%
    What i have done is that constructed the post manually in Java code in un encoded form and expected the HTTP Adapter to do the encoding. Having done this, the HTTP Server is able to scuccessfully parse the xml except for & and < , > chars which err out as invalid XML.
    Is there an elegant way of doing above scenario using XML post and standard HTTP Adapter.
    Best Regards,
    Sudharshan N A

  • Can we enhance the Sender SOAP Adapter with our own modules?

    Hi All,
    Can we enhance the Sender SOAP Adapter with our own modules on the Module Tab Page in the Module Processor?
    I believe the answer is no. However, whatever may be the answer, I would like to know that is there any specific reason for that.
    Please help me in this regard.
    Thanks,
    Yogi.

    Hi,
    I think, we are mentioning the URL of the adapter channel directly in the configuration. SO there is no place we can customize this flow..just a thought
    Because in the file adapter etc, After Adapter Engine picks up the data and before it goes into integration engine module is processed..
    http://help.sap.com/saphelp_nw2004s/helpdata/en/fc/5ad93f130f9215e10000000a155106/content.htm
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/f013e82c-e56e-2910-c3ae-c602a67b918e
    Rgds,
    Moorthy

  • SOAP Adapter with Webservice Provider URL

    This is what I did. Configured a Receiver SOAP adapter with SOAP 1.1 Message Protocol. Target URL is the WSDL URL Binding (SOAMANAGER) with authentication.
    When I test the scenario the Message is through PI and Communication Channel - No errors
    However strangely I do not see anything happening in ECC. Sometimes a log shows up in SOAMANGER "SOA Runtime Log/Trace Viewer" which has SOAP Runtime Error Information. This is very inconsistent again.
    I have tested SOAP with XI 3.0 Message Protocol and the messages are through in ECC. No problems there.
    Also Tried with directly using "SOAP Location URL" from within the Binding WSDL URL. This also results in DUMP in ECC.
    Does SOAP adapter with SOAP 1.1 Message Protocol support Webservice Provider in ECC EHP5(SOAMANAGER Binding)? Is it built to support this kind of scenario? Or only WS adapter can invoke the Binding URL?
    Is there any other URL that can be invoked with SOAP -SOAP1.1?
    Using PI 7.1 Service Pack 5.
    Pavan.
    Edited by: pavan sodani on Aug 12, 2011 4:57 AM

    Did you properly expose the RFC/Class in SOAMANAGER of the backend system? there is no endpoint created by default. You have to create and endpoint for a logical system (I guess). Then try calling the webservice from any 3rd party tool like Altova XML Spy. If that works then the ABAP webservice is working good and could be called from PI.
    VJ

  • Messages failing in the SOAP adapter with the errror

    HI 
    I am getting the below error in the SOAP adapter monitoring . can any body tell what does "No route to host: Connect" mean .
    could some one help us on resolving this .
    Error Exception caught by adapter framework: No route to host: connect
    Error Delivery of the message to the application using connection SOAP_http://sap.com/xi/XI/System failed, due to: com.sap.aii.af.ra.ms.api.RecoverableException: No route to host: connect: java.net.NoRouteToHostException: No route to host: connect. Setting message to status failed.
    Error The message status set to FAIL.
    Error Returning synchronous error message to calling application: com.sap.aii.af.ra.ms.api.RecoverableException: No route to host: connect: java.net.NoRouteToHostException: No route to host: connect.
    thanks and regards
    sandeep

    Hi!
    First please confirm whether you are working on XI or PI 7.1 ?
    because in XI you need to generate WSDL manaually via Tools>Define Web service-Giving Input..and in XI you need to test the SOAP scenario from external tool like Altova xml spy tool kit or else SOAP client tool.
    In PI 7.1::
    You can publish directly the web service in the SERVICE REGISTRY from sender agreement onwards.
    once it is published you can check the status on your interface in service registry as CONFIGURED..Okay
    Here you can test directly in service registry...
    According to your error check ocne agan even though you gone through all the steps..
    1. Check whether the SOAP service is active or not in SICF>SAP>bc>XI>Service-->SOAP.
    2. sicne after generating wSDL u can get one url right that URL itself acts as  a gateway to enter the source data into XI..
    lets give to the source team to try with XI super uID adn PWD as authentification.
    3. Also please STOP ur communication Channel and start once again.
    4. Please check whether the WEB Service is configured correctly or not.
    Regards::
    Amar Srinivas Eli

  • SOAP Adapter with Security Levels - HTTP & HTTPS

    We have a successfully working interface scenario where SAP XI is hosting a web service and the partner systems calling it using SOAP Adapter URL http://host:port/XISOAPAdapter/MessageServlet?channel=:service:channel with Security Level HTTP on the SOAP Sender Communication channel.
    Going forward, for other similar interfaces (SAP XI hosting Web Service and partner systems calling it), we would like to use HTTPS and/or certificates.
    If we enable HTTPS on XI J2EE server as per the guide How to configure the [SAP J2EE Engine for using SSL - Notes - PDF|https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/964f67ec-0701-0010-bd88-f995abf4e1fc]....
    can partner systems still use the URL http://host:port/XISOAPAdapter/MessageServlet?channel=:service:channel or should they switch to https://host:port/XISOAPAdapter/MessageServlet?channel=:service:channel?
    can we continue to have the existing interface working using HTTP Security Level i.e. partners not having to send the certificate with each message?
    If we use HTTPS security level, is it mandatory for the partner system need to send the certificate? Is it possible to have an HTTPS scenario w/o certificates?
    What is the difference between Security Levels  'HTTPS Without Client Authentication' & 'HTTPS with Client Authentication'?
    I appreciate your inputs on this.
    thx in adv
    praveen
    PS: We are currently on SAP PI 7.0 SP17

    Hi Praveen,
    There is no need to change the interface and It is manditory for the partners to send certificates in order to validate each other. Use the https in url.
    HTTPS With Client authentication:
    The HTTPS client identifies itself with a certificate that is to be verified by the server. To validate the HTTPS clientu2019s certificate, the HTTPS server must have a corresponding CA certificate that validates this certificate. After validation of the clientu2019s certificate, the server maps the certificate to an actual system user executing the HTTP request.
    and check this link.
    http://help.sap.com/saphelp_nw04/helpdata/en/14/ef2940cbf2195de10000000a1550b0/frameset.htm
    Regards,
    Prasanna

  • Sender SOAP Adapter with HTTPs call

    Hello,
    Our scenarion is ..  we will have a sender SOAP adater .. but it needs to be called using HTTPs(SSL).
    Now considering we have the certificate generated and installed ..and that integration server is HTTPs enabled....What URL should the sending system call..?
    For normal HTTP call the inbound address for inbound Adapter is: http://host:port/XISOAPAdapter/MessageServlet?channel=party:service:channel
    For the case of HTTPs just changing the htttp to https and the port number in in the calling system will suffice? Or is there other configurations that needs to be done??
    Thanks and Regards,
    Himadri

    Hi Himadri,
    Firstly as suggested by others you can call using https and give the https port in the soap adapter servler URL. Secondly you need to do the following configurations:
    1) If its PI 7.0/3.0, deploy the latest version of the SAP Java cryptography toolkit.
    2) Configure SAP PI as the server for HTTPS calls. In short
          Using the SSL Provider service:
                                a.      Select whether the J2EE Engine should:
                                   ■      Request (but not require) that the user presents a client certificate for authentication.
                                   ■      Require that client certificates are to be used for authentication.
                                b.      Import the CAu2019s root certificate into the Trusted Certification Authorities list. (Choose Add.) using the following For all the steps, link is mentioned below for XI 3.0, you can find similar ones for PI 7.0
    http://help.sap.com/saphelp_nw04/helpdata/en/f1/2de3be0382df45a398d3f9fb86a36a/content.htm
    3) If you want to enable client authentication then you would need to add the client certificate in the TrustedCA keystore view of the SAP J2EE engine.
    4) In the SOAP Adapter sender channel, configure Inbound Security level as HTTPS or HTTPs with client authentication based on your scenario.
    Best Regards,
    Pratik

  • Sender SOAP Adapter with Https

    Hi,
    can any one give me information on  how my Sender SOAP adapter to be configured with HTTPS port.
    please give me the what are all different ways to make my Sender SOAP Adapter secure and give me the steps to achieve the functionality.
    Thank You,
    Madhav

    check this section:
    http://help.sap.com/saphelp_nw70/helpdata/EN/14/ef2940cbf2195de10000000a1550b0/frameset.htm
    Also some help from SAP note:
    https://service.sap.com/sap/support/notes/891877
    Regards,
    Abhishek.
    Edited by: abhishek salvi on May 29, 2009 1:59 PM

  • Plain HTTP Adapter vs SOAP Adapter with regards to SSL

    Hi,
    I need to setup communication channles within XI to send and receive secure xml. I am confused after reading the XI documentation and the some of the discussion forums on SDN.
    Can anyone clarify the following:
    1) Does the plain HTTP Adapter support SSL? According to the XI documentation is does NOT? Have I miss read it?
    2) This being the case, the only way to send and receive secure XML is to use the XI/SOAP Adapter?
    Thanx for your help.
    Cheers
    Yackeen

    Hi Yackeen,
    no, that's not true. The plain HTTP Adapter supports SSL. No problem.
    Regards,
    Udo

  • ERROR while using SOAP adapter with SMTP protocol

    Hi,
    The error i get is,
    SOAP: error occured: java.io.IOException: server not responding OK to MAIL FROM; 454 5.7.3 Client does not have permission to submit mail to this server.
    Please given your suggestions on the same.......
    Also do provide more information on sending SOAP over SMTP.
    Regards,
    Abhy

    Hi,
    Thanks for your replies...
    The thing is that we tried a receiver mail adapter scenario with SMTP prptocol which is working perfectly fine... Its the same SMTP sever we are using even in this case.
    What could be the network problems that you mentioned, could you throw more light on the same.
    Regards,
    Abhy

  • FTP adapter with application acknowledgment

    Hello,
    I like to send a file with an FTP adapter to an "in" folder and configure a sender FTP adapter to pick up files from an "out" folder.  I'd like to us a BPM and have the BPM determine if the returning file is pointing to an error and send an alert.  This is my manual way to create an application acknowledgment.
    So my BPM needs a Receive, Send and then another Receive step.  Has anyone done this before?  Or is there some good documentation on this process?
    Thanks,
    Matt

    Some misunderstanding I guess
    I was explaining to use UDF to raise alert message, say for example using this
    Triggering XI Alerts from a User Defined Function
    Checking file for error should be based on the business logic used by the receiver system. XI won't understand in itself that the file has error. There must be some business requirement that should be checked.
    Regards,
    Prateek

  • Soap Adapter with Attachments

    Hello,
    I have a scenario where I need to call web service from web Application.
    The Web service returns an attachment which has to be displayed in web appIication. It will be a synchronous call.
    Can I use Soap Sender Adapter for Web Application --> XI and Soap Receiver adapter for XI --> Web service to receive attachment?
    Or Can I use a java proxy , the web application is deployed on Tomcat.
    Thanks in advance,
    Beena.

    Thanks Bhavesh,
    The web application is JSP hosted on Tomcat.
    I was planning to expose the interface in XI as web service and write client for it in JSP.
    I am not sure if I can use Sender Proxies here.
    Do I need to install Java Proxy runtime on Tomcat if I use Proxies?
    Thanks,
    Beena.

  • SOAP Adapter with JAVA Mapping.

    Hi,
    I am trying a scenario,
    file->SOAP Receiver->SOAP Sender->IDOC
    in this I have used two interface mapping(and two mapping also).
    In first mapping i used Java mapping. so the WSDL of this is of no use for me.
    and in second mapping graphical mapping is performed.
    but my scenario is not woking completely. only one messge in SXMB_MONI is displayed. but it should be two. I think there is some problem in java mapping.
    in java mapping i have generated XML output, which will be input of SOAP sender.
    plaese suggest me the format which should be generated by java mapping.

    Sandeep,
    Let me try to put your requiremen,
    You have 2 scenariom
    FILE to SOAP
    SOAP to Idoc
    When the file becomes availbale, the Scenario 1 triggers of Scenario 2. Scenario 2 provides you a WSDL and so scneario 1 's output should be of the format of this WSDL.
    Hope I am on the correct track.
    If yes, just import this WSDL into your IR, and see the format in which it expects the data by using it as a message type in some mapping ( dummy mapping ) and then in your Java Mapping create a output of the same format, with the same namespace etc.
    Regards,
    Bhavesh

  • Sender Soap adapter with 2 different operartion

    Hi,
    I have a request to create a web service that contain 2 operation. Any way to explose web service with 2 operations? Thanks.

    Hi,
    PI 7.1 above already supported for multiple operation per webservice. You can configure the operation in Message Interface.
    Best Regards
    Fernand.

  • HTTP 415 Unsupported Media Type with SOAP adapter trying to put SOAP header

    Hello,
    I am trying to put data into soap header using soap receiver adapter. Seems like building the complete soap message is the right way to go. Thus I wrote a java program to build the complete soap message (soap envelop, soap header and soap body which contains the message PI received from the sender). Mapping program works well. However when I ran the scenario, I got Error "SOAP: response message contains an error XIAdapter/HTTP/ADAPTER.HTTP_EXCEPTION - HTTP 415 Unsupported Media Type" when calling the receiver's web service (the SOAP receiver adapter CC have the "Do Not use SOAP Envelop" checked). Anyone knows why I got this error? From google, seems like this error is because the http's content-type is set to other type, rather than "text/xml". However in soap CC there is no option to control this.
    The message sent to the receiver is (after mapping);
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP-ENV:Header>
    <SOAP-SEC:Signature xmlns:SOAP-SEC="http://schemas.xmlsoap.org/soap/security/2000-12" MyAttr="value">My Test Value</SOAP-SEC:Signature>
    </SOAP-ENV:Header>
    <SOAP-ENV:Body>
    <ns1:UpdateEquipment xmlns:ns1="http://mycomp.com/mywebservice">
    <ns1:EquipmentNumber>000000012345</ns1:EquipmentNumber>
    <ns1:LicensePlate>654321</ns1:LicensePlate>
    </ns1:UpdateEquipment>
    </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    Anyone can help?
    Thanks

    When you check "Do Not use SOAP Envelop", the SOAP adapter chooses application/xml instead of text/xml.
    You can change the content type with help of the MessageTransformBean. You put the bean in the module chain of the receiver channel and add the parameter Transform.ContentType = text/xml
    See
    http://help.sap.com/saphelp_nwpi71/helpdata/EN/57/0b2c4142aef623e10000000a155106/frameset.htm

Maybe you are looking for