cancel
Showing results for 
Search instead for 
Did you mean: 

SOAP to HTTP

former_member198060
Participant
0 Kudos

Hello,

I have a scenario which looks like this:

Web service consumer <SOAP> PI <HTTP Post call> Endpoint

So I have an endpoint where I need to send a request to in HTTPS POST and I will sync. receive the response XML.

This endpoint should be triggered from a consumer via a web service call.

Can you tell me if I need a BPM for this scenario or can it be handled without? Maybe you have any helpful pointers how to set this up. Would be much appreciated.

Best Regards,

Peter

Accepted Solutions (0)

Answers (1)

Answers (1)

markangelo_dihiansan
Active Contributor
0 Kudos

Hello,

Can you tell me if I need a BPM for this scenario or can it be handled without?

No BPM is needed for this scenario.

For ESR you will need

2 Synchronous Service Interfaces - one outbound and one inbound

2 or 3 Message Mappings - one for request, one for response and one for fault message (optional)

1 operation mapping

After that, it is normal integration directory configuration

e.g parties, comm channels, sender agreement ... etc

Hope this helps,

Mark

Edited by: Mark Dihiansan on Jun 30, 2011 12:02 PM

former_member198060
Participant
0 Kudos

Hello Mark,

Thank you for your reply!

The soap message and the HTTP request use the same structures, so as far as I know I will not need mappings for this process.

My problem is mainly configuration of the http receiver channel I think.

It offers URL address and HTTP destination as addressing types.

Now my URL where I need to send the xml payload as http POST to is something like:

https://mytest.test.com/operations/runme

When I try to use "HTTP destination" and just paste the full URL in there, it cuts of the end as it seems the number of characters in the destination field is very very limited, so I cannot enter long urls like above?

When using "URL address" I have to configure target host, service number and path.

So for my example URL I configured:

target host: mytest.test.com

service number: 443

path: /operations/runme

But I am not sure that this is correct. I am getting timeouts and "service unavailable" errors in the monitoring when trying to do the soap call like this. But when sending via a simple html form to the https address via POST, I am getting a valid response back.

Maybe you can point me where my configuration is being done wrong.

Best Regards,

Peter

markangelo_dihiansan
Active Contributor
0 Kudos

Hello,

When I try to use "HTTP destination" and just paste the full URL in there, it cuts of the end as it seems the number of characters in the destination field is very very limited, so I cannot enter long urls like above?

HTTP destination refers to an SM59 (tcode) RFC Destination of type G created in your XI instance. The name of the RFC Destination should match the one declared in your HTTP destination. From there, you can enable SSL, cookies, etc..but you lose the dynamic configuration part (if the URL you are connecting to changes)

When using "URL address" I have to configure target host, service number and path.

So for my example URL I configured:

target host: mytest.test.com

service number: 443

path: /operations/runme

But I am not sure that this is correct. I am getting timeouts and "service unavailable" errors in the monitoring when trying to do the soap call like this

That is because the URL address is designed to handle http and not https You use the HTTP Destination for that.

Alternatively, you can try using the Receiver SOAP Adapter, just tick the Do Not Use SOAP Envelope option.

Hope this helps,

Mark

baskar_gopalakrishnan2
Active Contributor
0 Kudos

>When I try to use "HTTP destination" and just paste the full URL in there, it cuts of the end as it seems the number of >characters in the destination field is very very limited, so I cannot enter long urls like above?

You cannot enter URL if you choose option to use HTTP destination. If your receiver end is not supporting https, just use URL and do the HTTP post. Dont use http destination as addressing type.

Since you have same structure for both sender and target side, you might use the same for both.

Also SOAP adapter uses HTTP as message protocol, so you can use SOAP adapter without using envelope to use HTTP transport for your receiver too.