Skip to Content

HTTP - SOAP

Hi gurus,

We want to create the following scenario:

HTTP - XI - SOAP

We have test with several combinations of the parameters of the HTTP Adapter Sender and the SOAP Adapter Receiver and we obtain:

java.io.IOException: invalid content type for SOAP: APPLICATION/OCTET-STREAM
at com.sap.aii.messaging.net.MIMEInputSource.readBody(MIMEInputSource.java:363)
at com.sap.aii.messaging.net.MIMEServletInputSource.parse(MIMEServletInputSource.java:58)
at com.sap.aii.af.mp.soap.web.MessageServlet.doPost(MessageServlet.java:359)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:390)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:264)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:347)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:325)
at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:887)
at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:241)
at com.sap.engine.services.httpserver.server.Client.handle(Client.java:92)
at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:148)
at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
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:100)
at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)

or

XIServerUNKNOWN.DeliveryException
com.sap.aii.af.ra.ms.api.DeliveryException: XIServer:CANNOT_READ_PAYLOAD:
at com.sap.aii.adapter.xi.ms.XIEventHandler.onTransmit(XIEventHandler.java:451)
at com.sap.aii.af.ra.ms.impl.core.queue.CallConsumer.onMessage(CallConsumer.java:125)
at com.sap.aii.af.ra.ms.impl.core.queue.Queue.run(Queue.java:831)
at com.sap.engine.frame.core.thread.Task.run(Task.java:64)
at com.sap.engine.core.thread.impl5.SingleThread.execute(SingleThread.java:79)
at com.sap.engine.core.thread.impl5.SingleThread.run(SingleThread.java:150) 

Also we have proven with several modules and parameters in the SOAP Adapter.

The HTTP Service is run (sicf) and SOAP too.

They do not exist mappings, both structures are identical. We test the operation by means of a page HTML with the method post.

In the HTTP Adapter we have checked “Apply URL Parameters” and added the names of the parameters that we will send in the Post.

What can be happening?

Thanks

Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

8 Answers

  • Mar 27, 2007 at 07:33 PM

    I seen the following:

    In trace SXMB_MONI:

    <Trace level="1" type="B" name="CL_HTTP_PLAIN_INBOUND">
      <Trace level="1" type="T">server-protocol HTTP/1.1</Trace>

    but in the Adapters Message Protocol is HTTP 1.0.

    I don't understand .

    Add comment
    10|10000 characters needed characters exceeded

  • avatar image
    Former Member
    Mar 27, 2007 at 01:02 AM

    Hi

    I think u should provide more information like how do u configure your commincation channel and the mapping file. i suppose there is some issue with mapping.

    cheers

    nag

    Add comment
    10|10000 characters needed characters exceeded

  • Mar 27, 2007 at 03:14 AM

    Hi,

    Looks like the Webservice is sending back a response which is invalid and does not have content type as text / xml.SOAP adapter in XI expects the response as text / xml.

    Juust check the response payload using the TCP gateway tool and then check what the response format is and check if this is text / xml?

    Regards

    Bhavesh

    Add comment
    10|10000 characters needed characters exceeded

  • avatar image
    Former Member
    Mar 27, 2007 at 04:03 AM

    Hi,

    Can you plz check the SOAP Response with the XMLSpy by sending the data with Webserive and get the response.

    Regards

    Chilla

    Add comment
    10|10000 characters needed characters exceeded

  • Mar 27, 2007 at 01:38 PM

    I attempt to explain better:

    I use a page .html (POST) in order to invoke a one Web Service.

    HTTP Adapter Sync--> Web Service (SOAP)

    I configure HTTP Adapter Sender:

    HTTP" target="_blank">http://es.geocities.com/jsahagung/SDN/HTTPSender.JPG">HTTP Adapter Sender Configuration

    I configure SOAP Adapter Receiver:

    SOAP" target="_blank">http://es.geocities.com/jsahagung/SDN/SOAPReceiver.JPG">SOAP Adapter Receiver Configuration

    and

    SOAP" target="_blank">http://es.geocities.com/jsahagung/SDN/SOAPReceiver-Module.JPG">SOAP Adapter Receiver Configuration

    The code of HTML:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <TITLE>Test HTTP Adapter</TITLE>
    </HEAD>
    <BODY>
    <FORM METHOD=POST ACTION="http://host:ABAPPort/sap/xi/adapter_plain?namespace=http%3A//calculadora.es
    &interface=MI_OUT&service=BS_Sender&QOS=BEhttpclient&sap-user=XXXXXXXXXX
    &sap-password=XXXXXXXX&sap-client=XXX">
    OPER1: <INPUT TYPE="text" NAME="OPER1"><BR>
    OPER2: <INPUT TYPE="text" NAME="OPER2"><BR>
    OPERATOR: <INPUT TYPE="text" NAME="OPERATOR"><BR><BR>
    <INPUT TYPE="submit">
    </FORM>
    </BODY>
    </HTML>
    

    Well, with this configuration, the error that shows is: “CANNOT_READ_PAYLOAD”.

    If I delete module "localejbs/AF_Modules/MessageTransformationBean" and checked "Do not Use SOAP Envelope" the error that shows is: "invalid content type for SOAP: APPLICATION/OCTET-STREAM".

    I don't mapping.

    The content-type of request is application/x-www-form-urlencoded (SXMB_MONI)

    My questions are:

    1 - What is wrong?

    2 - How I must to configurate communication channel so that the scenario works?

    3 - Is Message Mapping with Java mapping necesary?

    4 - Are there any blog with this scenario?

    5 - The HTTP Adapter automatically doesn't transform request HTTP into XML/XI?

    Add comment
    10|10000 characters needed characters exceeded

    • Former Member

      no need to configure sender http adapter

      3 - Is Message Mapping with Java mapping necesary?

      >>depends on the logic you have to implement in mapping.

      The HTTP Adapter automatically doesn't transform request HTTP into XML/XI

      >> you need to push it from http

  • avatar image
    Former Member
    Mar 27, 2007 at 03:59 PM

    Hi,

    You need to use the Message Transform Bean to solve this issue.Look into this thread and see Stefan's reply on what needs to be done,.

    soap-receiver-how-to-convert-applicationxml-of-pay

    Also Check this threads which has the same issue:

    invalid content type for SOAP: TEXT/HTML

    invalid content type for SOAP: TEXT/HTML

    DeliveryException: invalid content type for SOAP: TEXT/HTML

    ---Satish

    Add comment
    10|10000 characters needed characters exceeded

  • Mar 27, 2007 at 05:36 PM

    Hi,

    I don't understand --> <b>you need to push it from http</b>.

    I test Sending" target="_blank">www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/40728f7b-0401-0010-d9bc-8c73884a3789">Sending a Mail with CSV File as an attachment-via XI and

    XIServer:CANNOT_READ_PAYLOAD

    Thanks

    Add comment
    10|10000 characters needed characters exceeded

  • Mar 28, 2007 at 12:04 PM

    Hi experts,

    I sent the data within the URL:

    http://host:portABAP/sap/xi/adapter_plain?arg1=value1&arg2=value2&arg3=value3

    When I test "POST" the message arrive in XI like attachment (.bin) with the parameters;

    - Client HTTP (for example, a page HTML or BSP) must send "PAYLOAD"? Doesn't make the HTTP Adapter automatically?

    - How can be done in XI, with a JAVA/XSLT mapping?

    I read this" target="_blank">http://help.sap.com/saphelp_nw04/helpdata/en/82/f4993c03e0cd37e10000000a11405a/content.htm">this page and say: "The standard exchange format for data in the Integration Engine is XML. However, using the plain HTTP adapter you can also send and receive data in HTML and ASCII. In this case you must use a Java mapping"

    - It's say that the HTTP Adapter sends the data in HTML and ASCII and with a JAVA mapping becomes to XML?

    <a href="/people/siva.maranani/blog/2005/09/15/push-data-to-mvc-architectured-application-using-xi this blog</a> creating a JAVA mapping, therefore, I deduce that using JAVA mapping would solve my problem.

    - Somebody can confirm it?

    Add comment
    10|10000 characters needed characters exceeded