cancel
Showing results for 
Search instead for 
Did you mean: 
Subscribe

Hello Experts,

I’m working on PI dual stack 7.30 , and have a scenaio RFC( ECC ) -> PI -> SOAP.(3rd).

Either in synchronized or asynchronize mode, the SOAP Receiver channel got an error:

SOAP: call failed: java.io.IOException: Cant parse the document; HTTP 200 OK.

The logs as below:

However, 3rd checked that the message had been received and got no error.

I have check that, 3rd response with text/utf-8 format message.

Then ,I tried to use Soap UI tool to call the soap service directly, everything is OK.

Even , I used the provided WSDL to generate client proxy in ECC to test the SOAP service, and with ABAP developers' help to call the service, and all is working fine.

The message by soap ui directly sent look like as below:

So, how could I overcome this error?

Please give me some advice.

Thanks in advance.

0 Likes
View Entire Topic
dilipkkp2412
Contributor
0 Likes

Hi Wu Feng,

In PI's SXMB_Moni, check below:

[1st]

  • XML Original Message -> Inbound Message ( CENTRAL ) -> XML Validation Outbound Channel Request -> Payloads -> MainAttachment ( text/xml;charset=utf-8 )
  • compare this with your SOAP-UI's request message

[2nd]

  • Response Msg ID -> Inbound Message ( CENTRAL ) -> Payloads -> MainAttachment ( text/xml;charset=utf-8 )
  • compare this with your SOAP-UI's response

Also cross verify in SOAP Receiver channel:

  • check 'Do Not use soap Envelope' (here assuming, in request payload, soap envelope is already attached)
  • and transformation of content type using module parameters

Hope above helps you

Thanks & Regards

Dilip

wu_feng2
Explorer
0 Likes

Hi Dilip,

Thank your reply.

I configured the soap receive channel as you advised, it don't work.

From monitor tool, I could see the message sent to receiver channel is the same as soap UI called the service directly.

When I checked 'Do Not use soap Envelope' option, it got error as below shown.( OT_return is an element of response message in sender side)

But if not checked 'Do Not use soap Envelope' option, the result is the same error as before.

dilipkkp2412
Contributor
0 Likes

Hi Wu Feng,

Just provide inputs for below queries:

  • Are you including Soap-envelope in request message ? if yes...you have to "uncheck" the option "Do Not use soap Envelope"
  • I guess, map "MM_MASTER_DATA_SBFL_RETURN" is response message mapping, right ?....then it means you are getting service response and its mapping failed while converting to RFC format....can you show its "Inbound Message" -> "Payload" ?
  • Are you using any Soap Action too ?
  • Any specifc header ?...just corss cehck from SOAP-UI-TOOL

Regards,

Dilip

wu_feng2
Explorer
0 Likes

Hi Dilip,

"MM_MASTER_DATA_SBFL_RETURN" is the response message mapping.

When checked the option "Do Not use soap Envelope", the inbound payload like this:

"DeviceCategoryInput" Is the request message name, and "http://tempuri.org/" is the namespace of "DeviceCategoryInput".

I have checked that, the payload in the path Original Message -> Adapter Call -> payload consist of the content :

<?xml version="1.0" encoding="UTF-8" ?><ns1:DeviceCategoryInput xmlns:ns1="http://tempuri.org/">

And some time later,review the message, the response node do not present, looks like as below:

The service has attribute soapAction, no other header attributes.

Another thing, from the communicate channel monitor, the receiver channel, has the following logs, and the message not received by 3rd system.

SOAP: request message entering the adapter with user J2EE_GUEST

SOAP: completed the processing

SOAP: continuing to response message d4c5eb36-5e62-11e8-a912-00000076e6de23.05.2018

MP: processing local module localejbs/AF_Modules/MessageTransformBean

Message delivered to the application using connection SOAP_http://sap.com/xi/XI/System23.05.2018

Message status set to DLVD

dilipkkp2412
Contributor
0 Likes

Hi Wu Feng,

  • In Config, you have to "uncheck" the option "Do Not use soap Envelope", you are on right path
  • Next, if soap fault is been returned, it means your soap request is not in proper format.
  • You may be matching your ready PI-soap-request with soap-ui payload, but soap-ui also using soap-action in its header, then you should frame your pi-soap-request like below and try
  • Above format you can try in soap-ui too, do not forget to remove soap-action from default soap-ui places
  • Reason of response map (MM_MASTER_DATA_SBFL_RETURN) is soap fault message.

Thanks & Regards,

Dilip

dilipkkp2412
Contributor
0 Likes

Hi Wu Feng,

When you received soap:fault message in response, it's about soap:version mismatch and invalid namespace in request, to cross verify, can you provide request payloads of "Soap-UI" and "SXMB_MONI of SAP-PI", need to compare.

And about other test case,

  • where "If you uncheck the option "Do Not use soap Envelope" 3rd system receive messages successfully,
  • how you are assured ?,
  • Are you able to see response from service in SXMb_Moni ?,
  • if yes, then provide it with its content-type. There may be some some unparsable char in payload
  • There may be one more check, can you verify that your WSDL document is RPC-style ?
  • if yes, then try below settings:
  • If you get it resolved, please let me know, I'm too interested for this type of error resolution.

Regards,

Dilip