cancel
Showing results for 
Search instead for 
Did you mean: 

SOAP Adapter - Http Protocol Version

YouriC
Participant
0 Kudos

Hi,

I consume a web service with SOAP Adapter.

Transport Protocol : Http

Message Protocol : SOAP 1.1

PI Version : 7.4

Since few days, i must inevitably use Http protocol version 1.1

Apparently now I use version 1.0

I would like to keep the Soap Adapter.

Http Axis adapter is not setup actually.

I can't find how to change this Http protocol version ... if someone have an idea ?

Thanks,

Youri

Accepted Solutions (0)

Answers (4)

Answers (4)

YouriC
Participant
0 Kudos

Mapping Error with SOAP Adapter - Transport Protocol : Http Axis

com.sap.engine.interfaces.messaging.api.exception.MessagingException: com.sap.engine.interfaces.messaging.api.exception.MessagingException: Error encountered while executing mapping: com.sap.aii.af.service.mapping.MappingException: Mapping failed in runtimeRuntime Exception when executing application mapping program com/sap/xi/tf/_mm_readinbox_req_ecc2mercurius_; Details: com.sap.aii.mappingtool.tf7.IllegalInstanceException; Cannot create target element /ns1:submitInboxRequestRequest/ns2:ReceiverParty. Values missing in queue context. Target XSD requires a value for this element, but the target-field mapping does not create one. Check whether the XML instance is valid for the source XSD, and whether the target-field mapping fulfils the requirement of the target XSD...

But this mapping work perfectly with Soap Adapter - Transport Protocol Http

I need to use Http Axis because I must to work with protocol Http 1.1.

Why my mapping doesn't work with Http Axis Transport Protocol ... ?

Thanks,

Youri

YouriC
Participant
0 Kudos

We installed the Axis Adapter.

But now my mapping doesn't work ...

Axis adapter has an influence on the PI Mapping ?

former_member207667
Participant
0 Kudos

No, it doesn´t have any influence.

Is it a synchronous communication?

Which mapping is failing?

- Request Mapping?

- Response Mapping?

If you are getting the error in the response mapping, I recommend to use the TCPMon in order to catch the real messages. Maybe the expected mandatory xml nodes are not in the response.

Best regards,

Mikel

YouriC
Participant
0 Kudos

It's a synchronous scenario.

Request mapping but it's strange ... in the payload, date are mapped correctly.

My test with SoapUI are good, no problem.

former_member207667
Participant
0 Kudos

Wow, that´s weird.

In the request mapping, the message has not even reached the receiver adapter (AXIS) yet ... the error you are getting on the mapping must be caused by something else.

In the message monitor: Take the payload from the failed message, and test the request mapping locally, in the ESB.

Once the mapping is working for a that payload, repeat the real test.

Best regards.

Mikel

YouriC
Participant
0 Kudos

Error in message monitor :

In Message Content the payload seems to be mapped.

Source data is from SXMB_MONI

Target data is from Message Monitor when I download the payload.

Soap Enveloppe in payload is collapsed.

In Axis Protocol from Soap Adapter : Payload Extraction = Soap Body Child.

With Soap Body or Soap Enveloppe value the error is different. (Application Error without information).

former_member207667
Participant
0 Kudos

Hi Youri,

Reading the log I get the following:

- It is not failing in the request mapping, but in the response mapping!

As I explained in the previous post, I suggest using tcpMON to see the real request generated by AXIS adapter and the real response you are getting from the WS!

You can find lots of posts explaining the usage of this tool.

Example of Adapter Bug Analisys using TCPMon:

You could also develop a Java Mapping that prints in the logs the real response ...

Best regards,

Mikel

YouriC
Participant
0 Kudos

I created a MockService with SoapUI to capture my request from PI Soap Adapter Axis Protocol.

The request is perfect ...

tcpMON doesn't work in my network.

former_member207667
Participant
0 Kudos

Hi Youri,

It´s a shame you can´t use TCPMon, you need to see the real response ... in order to check why the mapping is failing.

Anyway, you´ve been able to capture the real request with the mock service .... now you can use other software to "exactly reproduce" the captured request. Then send it to the backend and see the real response ...

I suggest using the chrome extension called POSTMAN.

There you can recreate the same request you have captured (body + headers), send it, capture the real response. Then test the mapping and see what´s failing.

The problem is that with this approach, your browser will be the one sending that request and not PI ... so you are not exactly reproducing the same situation (this is why I preffer using TCPMon, it captures the real request and response sent from PI) ... but this approach will work most of times.

Best regards,

Mikel

YouriC
Participant
0 Kudos

For authentication I use Certificate but in Soap Envelope I can't see Signature, that's problematic, no ?

mate_moricz
Advisor
Advisor
0 Kudos

Hi Youri,

As far as I know you can only enable HTTP 1.1 by using SOAP Axis. See SAP Note 1039369 Axis Adapter FAQ for more information.


Regards,

Mate




YouriC
Participant
0 Kudos

Yes, I have read this document.

It's maybe an alternative.

I find it strange, in SAP PI 7.4 with standard adapter we can't use http protocol 1.1 ?

Always http 1.0 ...

markangelo_dihiansan
Active Contributor
0 Kudos

Funny thing is, in sm59 if you execute a test...it is http 1.1

former_member194786
Active Contributor
0 Kudos

Hi Youri,

As a work around, can you try HTTP adapter and build the SOAP envelope yourself? HTTP_AAE adapter uses the transport protocol as HTTP 1.1.

Regards,

Sanjeev.

markangelo_dihiansan
Active Contributor
0 Kudos

Hi Youri,


Since few days, i must inevitably use Http protocol version 1.1

Apparently now I use version 1.0

I would like to keep the Soap Adapter.

Http Axis adapter is not setup actually.

I can't find how to change this Http protocol version ... if someone have an idea ?

As far as I know, the SOAP adapter only supports http 1.0 (Corrections are welcome). However, it should not prevent you from connecting to webservices that expect http 1.1. There is no option to use http 1.1.

Message protocol is just the format of the message being sent of http. Checking Do Not Use SOAP Envelope will more or less make it behave like the HTTP adapter.

.

Regards,

Mark

YouriC
Participant
0 Kudos

I tried "Do Not Use Soap Envelope" but nothing change, always a 403 Error Forbiden.

With SoapUI :

- with Http 1.0 same error 403

- with Http 1.1 no problem

markangelo_dihiansan
Active Contributor
0 Kudos

Hi Youri,

Can you share the http headers you see in SOAP UI by pasting the raw request? You can leave out the hostnames and the payload if you like

Regards,

Mark

YouriC
Participant
0 Kudos

Thanks,

Youri

markangelo_dihiansan
Active Contributor
0 Kudos

The content-length is not the same between the 1.1 and 1.0. That could probably be the reason why it is forbidden.

You need to compare what is coming out of the PI system, this will help you with that