on 04-11-2007 4:23 AM
Hi all,
In asynchronous senario, there would be a http status 200 response from the receiver if the message has been arrived the receiver system. I'm wondering, is it possible to change the response manually by develop a adapter module?
Thanks and B'Rgds,
YiNing
YiNing
Can you give more details?
This is an Asynch Scenario and you still get a response from the target system? Am not sure I followed.
thanks,
Bhavesh
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I'm using a soap adapter.
Q: What should my web service return to the adapter for asynchronous calls?
A: Currently, the receiver adapter expects an HTTP 200 with a SOAP envelope with an empty content for successful delivery. Any other response will result in a XI system error and triggers retries of the message. When you want to check duplicates, you should configure your receiver channel to pass the XI message header information to the server.
Prior to SP11, a SOAP fault resulted in the application or system error, depending on whether the SOAP fault contained a detail child element or not. This behavior contradicted the communication model. Therefore, it has been changed so that the adapter generates the system error for any SOAP fault in asynchronous calls.
When you want to check duplicates in your web service, you should configure your receiver channel to pass the XI message header information to the server. When your web service indeed find a duplicate, assuming that the previous message was simply lost, your web service should return an HTTP 200 with an empty SOAP envelope.
Yining,
Adapter modules are simple.
You can also test the direction of the data inside the module.
Eg: You are using a a Synchronous SOAP adapter , and in this case the module will be called for both thew request and reponse. So using the direction of the call you can write the corrsponding logic.
In your case, the issue i see is that this is an Asynch call. So, even if you write a module by checking whether this is a request or a response, when the HTTP response reached the SOAP adapter the Standard SOAP module will be first called and I think as this is an Asynch call , the Standard SOAP Ejb will not forward it to the Custom Adapter Module which we have developed.
If it does, then it will be possbile , if it does not then dont think it is possible.
Regards
Bhavesh
I know.. Developing adaptrers aint easy. if it were there would be multiple adapter devloping vendors out there.
I have zero expertise in developing adapters and so I dont think I can be of further help.
Can you actually let us know why you want to change the response in the case of the Asynch call?
Regards
Bhavesh
We are using a lot of asynchronous receiver soap adapter.
The web service provider can only give us a http 200 response since its service is asynchronous, but the XI soap receiver adapter expects it with a soap message followed.
HTTP/1.1 200 OK
Content-Type: text/xml; charset="utf-8"
<SOAP:Envelope Xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP:Body>
</SOAP:Body>
</SOAP:Envelope>
That's the problem that I'm facing.
As workaround you can use the SOAP adapter in so-called no-SOAP mode or the plain HTTP adapter. Check the flag 'Do not use SOAP envelope' in the SOAP adapter channel. In this case you have to provide the SOAP envelope in the message by yourself. This can be done with a simple XSLT mapping.
For a webservice you have to change the content-type. Check this blog for details:
/people/varadharajan.krishnasamy/blog/2007/01/09/troubleshooting-soap-message--xi
Look at part 2 and 3.
Regards
Stefan
Hi, stefan. Thanks for your reply.
The HTTP Adapter:
The http adapter is used for connection to Integration engine. There're 2 addressing types in http receiver adapter:
1. URL Address. If this type has been chosen, only around 20 characters is permitted to enter in. The number of my web service address is more than 40 characters.
2. HTTP Destination: In this mode, the gateway and logon client must be filled.
Thus, HTTP adapter is not the key to my question.
The no-SOAP mode:
if I check the "Do not use SOAP envelope" option, I should add envelop manually by myself. Anyway, it is a soap adapter, it expects a response with a soap envelop, my problem still has not been solved.
Hope someone can help me.
Thanks and B'Rgds,
YiNing
> 2. HTTP Destination: In this mode, the gateway and
> logon client must be filled.
> Thus, HTTP adapter is not the key to my question.
Choose a destionation of type HTTP. Not R/3.
> The no-SOAP mode:
> if I check the "Do not use SOAP envelope" option, I
> should add envelop manually by myself. Anyway, it is
> a soap adapter, it expects a response with a soap
> envelop, my problem still has not been solved.
No, the SOAP adapter in no-soap mode does not expect the response as SOAP message.
Regards
Stefan
User | Count |
---|---|
88 | |
23 | |
11 | |
9 | |
8 | |
5 | |
5 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.