on 04-28-2011 5:53 PM
Hello PI guys.
I've this cenario, where PI conects to an external WS, using SOAP adapter in a syncronous way (best effort).
When I invoce the WS, in SXI_MONITOR i can see this error:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
- <!-- Call Adapter -->
- <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
<SAP:Category>XIAdapter</SAP:Category>
<SAP:Code area="PARSING">ADAPTER.SOAP_EXCEPTION</SAP:Code>
<SAP:P1 />
<SAP:P2 />
<SAP:P3 />
<SAP:P4 />
<SAP:AdditionalText>soap fault: Server was unable to process request. ---> Object reference not set to an instance of an object.</SAP:AdditionalText>
<SAP:ApplicationFaultMessage namespace="" />
<SAP:Stack />
<SAP:Retry>M</SAP:Retry>
</SAP:Error>
In message display tool i can find this log:
2011-04-28 17:40:53 Success Message successfully received by messaging system. Profile: XI URL: http://*****:50000/MessagingSystem/receive/AFW/XI Credential (User): PIISUSER
2011-04-28 17:40:53 Success Using connection SOAP_http://sap.com/xi/XI/System. Trying to put the message into the request queue.
2011-04-28 17:40:53 Success Message successfully put into the queue.
2011-04-28 17:40:53 Success The message was successfully retrieved from the request queue.
2011-04-28 17:40:53 Success The message status set to DLNG.
2011-04-28 17:40:53 Success Delivering to channel: InformaDB_receiver_SOAP
2011-04-28 17:40:53 Success MP: entering
2011-04-28 17:40:53 Success MP: processing local module localejbs/sap.com/com.sap.aii.af.soapadapter/XISOAPAdapterBean
2011-04-28 17:40:53 Success SOAP: request message entering the adapter with user J2EE_GUEST
2011-04-28 17:40:54 Success SOAP: completed the processing
2011-04-28 17:40:54 Success SOAP: continuing to response message 491319d0-71b6-11e0-8c97-0050569744cd
2011-04-28 17:40:54 Error SOAP: response message contains an error XIAdapter/PARSING/ADAPTER.SOAP_EXCEPTION - soap fault: Server was unable to process request. ---> Object reference not set to an instance of an object.
2011-04-28 17:40:54 Success MP: leaving
2011-04-28 17:40:54 Success The message status set to DLVD.
2011-04-28 17:40:54 Success The message was successfully delivered to the application using connection SOAP_http://sap.com/xi/XI/System.
My doubt is if the error is being thrown by the WS or if it's by adapter when parsing the WS response.
Can you help?
Regards,
Valter Oliveira
Hi,
Can you please ignore SOAP action in receiver adapter and try sending it again. It is not a mandatory field.
Regards
Aashish Sinha
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
adition info:
In the external definition, when I look at the messages associated to the WSDL, I can see GetReportSoapIN (the part without the credentials that i'm mapping) and I can see GetReportCredentials (the credentials part).
How can I join this two messages in one message to consume the WS?
Regards,
Valter Oliveira.
Hi Aashish.
No, I'm not using a MT or DT.
The problem is getting clear to me.
How to create a xml message, that contain this two messages of the WSDL?
The strange thing is that SOAP UI joined it the envelope and works.
In XI, my external definition (WSDL) contains the 2 messages. But how can I join them in the request I have to send to WS?
Regards,
Valter Oliveira.
You need to confirm that the request that SAP PI is making to the SOAP application is exactly in the same format as mentioned in the WSDL file....also confirm that the receiving SOAP application is using the same WSDL file format....similarly confirm for response message.
Also take into consideration the inclusion/ removal of SOAP envelope while you send/ receive message to the target SOAP application.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Valter,
Try to test the webservice from other UI tools like Altova, soap scope etc. Then try to do the same from PI. Your payloads should exactly look like same from all the tools. I think there is a mismatch what WS is expecting and what PI is sending.
Regards,
---Satish
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Satish.
Thanks for the help. So you think that the problem is with what XI is sending to WS and not a problem when XI tries to get the response.
I used SOAP UI and I can invoke the WS correctly.
If you are right, I'm not sure how to solve it! When I import the WSDL with SOAP UI, it prepares a message like this:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:slid="http://slide.info.pt/">
<soapenv:Header>
<slid:SLIDECredentials>
<!Optional:>
<slid:Username>ZZZZZ</slid:Username>
<!Optional:>
<slid:Password>XXXXXX</slid:Password>
</slid:SLIDECredentials>
</soapenv:Header>
<soapenv:Body>
<slid:GetReport>
<slid:tipId>Nif</slid:tipId>
<slid:valorId>1123</slid:valorId>
<slid:idProcesso>XMLSLIDE</slid:idProcesso>
<slid:bocados>111111111111111111111111111111111111111111111111111111111111</slid:bocados>
<slid:refCliente>9999</slid:refCliente>
<slid:tipOutput>
<slid:TipoOutput>Xml</slid:TipoOutput>
</slid:tipOutput>
</slid:GetReport>
</soapenv:Body>
</soapenv:Envelope>
But when I import it to XI, I only find this (without credencials):
<?xml version="1.0" encoding="UTF-8"?>
<ns2:GetReport mlns:ns2="http://slide.info.pt/">
<ns2:tipId>Nif</ns2:tipId>
<ns2:valorId>123</ns2:valorId>
<ns2:idProcesso>XMLSLIDE</ns2:idProcesso>
<ns2:bocados>111111111111111111111111111111111111111111111111111111111111</ns2:bocados>
<ns2:refCliente>9999</ns2:refCliente>
<ns2:tipOutput>
<ns2:TipoOutput>Xml</ns2:TipoOutput>
</ns2:tipOutput>
</ns2:GetReport>
Regards,
Valter Oliveira.
Hi there.
I think I was not clear in one point.
When I imported the WSDL i did not find where to place the credentials. Since it´s a sincronous message I cannot find the envelope message that I send to the WS. What I have shown here is what's done in the mapping I've made, whithout the header part.
The question is how can I fill that kind of envelope. In WSDL I only see the message GetReport, not the Header one.
I tryied already the authentication in SOAP communication channel but it doesn't work in this case.
Regards,
Valter Oliveira.
User | Count |
---|---|
74 | |
9 | |
8 | |
7 | |
6 | |
6 | |
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.