Quantcast
Channel: SCN : All Content - Process Integration (PI) & SOA Middleware
Viewing all articles
Browse latest Browse all 7030

Help with SOAP Receiver

$
0
0

Hello PI friends,

 

I'm connecting PI to an external SOAP web service developed in .NET. I created a scenario which should be very close to what I need but I was getting an error when testing in RWB:

 

SOAP: response message contains an error XIAdapter/HTTP/ADAPTER.HTTP_EXCEPTION - HTTP 400 Bad Request

 

So then I captured my payload and tried to get this working in SOAPUI, but came to the same 400 response.

 

I have a prototype program written in .NET which can execute the call correctly :-).

 

I watched this in Fiddler and compared the headers / payload to what I had, making an interesting discovery.

 

The overall message structure is something like this:

 

<soap:Envelope>

<soap:Body>

<WebServiceMethod>

<usuario/>

<password/>

<MyPayload>

.....more "XML", I use quotes here for a reason, please read on...

</MyPayload>

</WebServiceMethod>

</Body>

</Envelope>

 

What I noticed in Fiddler with the working .NET prototype is everything inside MyPayload is escaped XML, like: &lt;?xml version="1.0" encoding="utf-8"?&gt;&lt;

 

My message in PI is sending true XML inside that element structure. So when I change from my payload in SOAPUI using that escaped notation it works great.

 

But now either I need to accomplish this strange notation in PI, or perhaps I am doing something wrong with the way I've configured my datatype and mapping in the first place and it should always get escaped this way by using only passing the "MyPayload" section into the SOAP adapter?

 

However, when I tried this I am missing the key parts of the SOAP Body... e.g. WebServiceMethod, usuario, password, MyPayload

 

(BTW - This web service is in Spanish so username is really "usuario". I don't know if there is a way for this to be passed using the Adapter authentication options or if it must be coded into the message body)

 

Currently I named my datatype to match like "WebServiceMethod" and then defined all nodes underneath this. When I capture the SOAP output it looks OK to me structure wise... its just this internal web service XML payload which is giving me trouble.

 

Anyone run into this before? I hope it is something simple, I'm not a web service developer and am more accustomed to using the RFC / IDOC / JMS / JDBC adapters. Thanks for your ideas.

 

 

-Aaron


Viewing all articles
Browse latest Browse all 7030

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>