SOAP adapter - unauthorized problem
Hi all,
Our third party receive an unauthorized (401) message back when they send a soap request via http protocol to our XI server.
In the soap request, the following location adapted.
http://integration.test.com/XISOAPAdapter/MessageServlet?channel=P_Cop:BSrv_EDS:CC_Cop_SOAP_Sender_buf&version=3.0&Sender.Party=http://sap.com/xi/XI:XIParty:P_COP&Sender.Service=BSrv_EDS&Interface=http://test.com/interfacing/lp/eds/cop^MI_O_vatCOP_BUF
Changing the location into did not work also
http://XIusername:XIpassword@*integration.test.com/XISOAPAdapter/MessageServlet?channel=P_Cop:BSrv_EDS:CC_Cop_SOAP_Sender_buf&version=3.0&Sender.Party=http://sap.com/xi/XI:XIParty:P_COP&Sender.Service=BSrv_EDS&Interface=http://test.com/interfacing/lp/eds/cop^MI_O_vatCOP_BUF
Using a the Oxygen web service testing tool works fine (after enter a valid XIusername and XIpassword).
Using the SOAP UI web service testing tool does not work (after enter a valid XIusername and XIpassword).
Are there any other options or ideas?
Please help
Hi E.J.C. Theuns !
Maybe the problem is being caused because the way that the user and password is being sent to XI WebService.
I have used to send user and password joined to the url in the format that you specified in your first message but, this worked in Java, not in PHP.
When I used PHP to call a RFC function as a WebService, I do it using NuSOAP package, and using NuSOAP, the code was something like this:
require_once('nusoap.php');
$client=new soapclient('http://<server>:<port/sap/bc/soap/rfc');
$client->setCredentials('<user>','<password>');
$msg='<BAPI_MATERIAL_GETLIST xmlns="urn:sap-com:document:sap:rfc:functions">
<MAXROWS>200</MAXROWS>
<MATNRSELECTION>
<item>
<SIGN xsi:type="xsd:string">I</SIGN>
<OPTION xsi:type="xsd:string">GE</OPTION>
<MATNR_LOW xsi:type="xsd:string">000000000000000001</MATNR_LOW>
</item>
</MATNRSELECTION>
<MATNRLIST></MATNRLIST>
<MATERIALSHORTDESCSEL></MATERIALSHORTDESCSEL>
</BAPI_MATERIAL_GETLIST>';
$msg1 = $client->serializeEnvelope($msg);
echo "Makes the call !";
$client->send($msg1,"BAPI_MATERIAL_GETLIST");
echo '<br><br><br><br><b>Request:</b><xmp>'.$client->request.'</xmp>';
$material = $client->response["MATNRLIST"];
$item = $material["item"];
echo '<b>Test:</b> <xmp>'.$item["MATERIAL"].'</xmp>';
echo '<b>Response:</b> <xmp>'.$client->response.'</xmp>';
echo '<b>Debug log:</b> <pre>'.$client->debug_str.'</pre>';
echo "End of execution";
How you can see in this sample code, the user and password are sent using this code:
$client->setCredentials('<user>','<password>');
Where $client is a instance of the NuSOAP soapclient class.
This code always work very well, I don´t know if your third part system is using NuSOAP too but, case not, tell the php programmer to check if the library that is being used doesn´t have some class/method like NuSOAP, to set credentials.
Thank you for your attention, and I hope this info helps you !
Best regards,
Wilson
Similar Messages
-
Sender SOAP Adapter parameter problem
Hi,
My scenario is Web service to RFC. I configured XI (7.0) and tested the scenario with Altova Xml Spy, it works. However the ones that are going to call the service say that they need a sevice with a XmlNode parameter.
They are going to use VB.NET to call the service. What should I do?
Please tell me how to
1. Reconfigure XI to accept XmlNode parameter in sender SOAP adapter(I think this is not possible since XmlNode is a language specific element which should not be used for the sake of compatibility in Web Services)
or
2. How to explain this to them ?
Regards,
-TarikPlease refer to this blog http://blogs.msdn.com/kaevans/archive/2006/04/06/570223.aspx
Cheers
Fernand -
Adding ClientCertLoginModule into SOAP adapter causes problem for HTTP
Hi there,
We are configuring SOAP adapter to use HTTPS with client authentication
for a B2B project. We followed note 891877 to add ClientCertLoginModule
into service sap.com/com.sap.aii.af.soapadapter*XIOAPAdapter in the
security provider service,
ClientCertLoginModule, SUFFICIENT
BasicPasswordLoginModule, SUFFICIENT
The interface for the B2B project works fine after the change.
But other interfaces which are using HTTP to connect to SOAP adapter
are all failing with HTTP code 302. Because all these interfaces are
using HTTP protocal with username/password for authentication, we
expect they should still work because the BasicPasswordLoginModule is
listed in the login module stack.
Any help is much appreciated..Hi there,
We are configuring SOAP adapter to use HTTPS with client authentication
for a B2B project. We followed note 891877 to add ClientCertLoginModule
into service sap.com/com.sap.aii.af.soapadapter*XIOAPAdapter in the
security provider service,
ClientCertLoginModule, SUFFICIENT
BasicPasswordLoginModule, SUFFICIENT
The interface for the B2B project works fine after the change.
But other interfaces which are using HTTP to connect to SOAP adapter
are all failing with HTTP code 302. Because all these interfaces are
using HTTP protocal with username/password for authentication, we
expect they should still work because the BasicPasswordLoginModule is
listed in the login module stack.
Any help is much appreciated.. -
Receiver SOAP Adapter Problem-HTTP 401 Unauthorized
We are using XI-7.0. We have scenario IDOC >> XI >> SOAP by making asynchornous call.
Vendor has two web server - A and B. Both the servers set up are identical in the vendor system.
Web server "A" works fine from XML spy tool as well as XI for sending service order SOAP messages.
Web server "B", we are able to send SOAP messages from XML spy successfully and vendor also confirms that it updates database in their system.
But we are not able to send SOAP messages from XI on Server "B". We are getting following error message in the adpter engine.
Can someone please help me? Thanks!
<i>SOAP: response message contains an error XIAdapter/HTTP/ADAPTER.HTTP_EXCEPTION - HTTP 401 Unauthorized
MP: exception caught with cause com.sap.aii.af.ra.ms.api.RecoverableException: SOAP: response message contains an error XIAdapter/HTTP/ADAPTER.HTTP_EXCEPTION - HTTP 401 Unauthorized
Exception caught by adapter framework: SOAP: response message contains an error XIAdapter/HTTP/ADAPTER.HTTP_EXCEPTION - HTTP 401 Unauthorized
Delivery of the message to the application using connection SOAP_http://sap.com/xi/XI/System failed, due to: com.sap.aii.af.ra.ms.api.RecoverableException: SOAP: response message contains an error XIAdapter/HTTP/ADAPTER.HTTP_EXCEPTION - HTTP 401 Unauthorized.</i>
Thanks!
MPHi Riya,
For SSL configuration you can check,
Rajendra's blog http://scn.sap.com/people/rajendra.badi/blog/2011/11/23/pi-711-transport-level-secuirty-communicating-with-external-web-service-from-soap-adapter-through-ssl
Khade's blog http://scn.sap.com/people/s.khade/blog/2011/09/06/secured-connection-to-external-web-service-using-sap-xipi.
Regards. -
Problem with SOAP Adapter receiver not receiving the proper string
Hi friends
I have a very simple scenario as follows using SOAP Syncronous Call
SENDING SCENARIO
================
ExternalClient --> SOAP ADAPTER --> XI -> RFC ADAPTER --> ZBAPI
RECEIVING SCENARIO
==================
ZBAPI --> RFC ADAPTER --> XI --> SOAP ADAPTER --> ExternalClient
Here External Client is sending a search ID and ZBAPI searches for that record and send the FirstName and LastName.
I am using external Definitions in XSD format as follows.
INPUT XSD is
=========================================
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://cincom.com/xi/socrates/customerSearch" targetNamespace="http://cincom.com/xi/socrates/customerSearch">
<xsd:element name="ZBAPI_GET_NAME">
<xsd:complexType>
<xsd:all>
<xsd:element name="ID" type="xsd:integer" minOccurs="0" />
</xsd:all>
</xsd:complexType>
</xsd:element>
</xsd:schema>
===========================================
Reciving XSD file has
==============================================
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:socrates.cincom.com" targetNamespace="urn:socrates.cincom.com">
<xsd:element name="ZBAPI_GET_NAME_RESPONSE">
<xsd:complexType>
<xsd:all>
<xsd:element name="ADDRESSDATA" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="FNAME" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="20" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="LNAME" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="20" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:all>
</xsd:complexType>
</xsd:element>
</xsd:schema>
=========================================================
I HAVE TESTED THE ZBAPI AND IT WORKS WELL ON ITS OWN. ALSO I HAVE TESTED THAT THE MESSAGE SENT FROM OUTSIDE CLIENT IS REACHING BAPI. HOWEVER WHEN I GOTO 'SXMB_MONI' AND CHECK THE
XML STRING THAT THE RECIEVER IS GETTING, I SEE JUST THE FOLLOWING TWO LINES
===================================
<?xml version="1.0" encoding="UTF-8" ?>
<ns1:ZBAPI_GET_NAME_RESPONSE xmlns:ns1="urn:socrates.cincom.com" />
======================================
IF YOU NEED ANY FURTHER INFO, PLEASE LET ME KNOW.
HOPE SOME ONE CAN GUIDE ME WITH THIS PROBLEM.
THANKS IN ADVANCE
RAMRam
Can you pls. confirm whether the mapping of your XSD fields & BAPI fields are in same sequence. I mean hierarchy is same or not.
Just to verify, as you said you are using Sync scenario that means you are using ONE Sender Soap & ONE Reciever RFC adapter.
Regards
Lalit -
PI 7.1 problems publishing a WSDL of a sender soap adapter
We have upgraded our dev system from XI 3.0 to PI 7.1 and now I'm facing a problem with SOAP adapter. I have searched for answers here for a while but couldnu2019t find them. That why I start an own thread.
I thought with PI 7.1 it is very easy to publish the WSDL of SOAP adapter respectively a sender agreement. All you have to do is to choose your sender agreement and select the menu item "display WSDL" There you can get the WSDL and a WSDL URL. So it would be possible to deliver this URL to my partners. But while checking this URL respectively the delivered WSDL I've found a problem.
First of all the the WSDL URL doesn't look really good:
http://<server>:<port>/dir/wsdl?p=1_1ce2e954fe9632818bfff6c32f370748_portTypeBindingService
But it works. If I call this URL with a browser or with XML Spy I get the correct WSDL. Any chance to get a better readable URL?
The next thing is the proposed soap:address location in the WSDL. It has the following form:
http://<server>:<port>/XISOAPAdapter/MessageServlet?senderParty=&senderService=MYSERVICE&receiverParty=&receiverService=&interface=MYINTERFACE&interfaceNamespace=MYNAMESPACE"
If I compare it with the documentation i can see that the URL is completely different.
http://help.sap.com/saphelp_nwpi71/helpdata/en/43/951aceb1146353e10000000a11466f/frameset.htm
But again if it works all is fine but it doesn't work at least it doesnt work with XML Spy. The reason is the use of "& a m p ;" instead of only "&".
If I create a SOAP request with XML Spy an sent it to the XI I get the following error message: " Couldn't retrieve inbound binding for the given P/S/A values: FP=;TP=;FS=null;TS=null;AN=null;ANS=null;"
But if I change the SOAP request parameters replacing all the "& a m p ;" with "&" then it works.
Any chance to manage this? If I provide a WSDL on this way I want that my partners can use this "out of the box"Kulwant
Yes of course I can change that manually but therefore I have to save the WSDL to my local hard disc, change the WSDL and send it to my partner via mail. This is exactly the way I've done this till now. But with PI 7.1 I like to use the new opportunities.
Bhavesh
I have also no Service Repository till now. That's the reason why I want to use the way described in my initial post.
In PI 7.1 you can open the corresponding sender agreement of you SOAP adapter. There you find a menu item "display WSDL". If you choose this you get a window which displays the correct WSDL and an URL where you can find the WSDL too. If you copy this URL to a browser you get the same WSDL too.
http://help.sap.com/saphelp_nwpi71/helpdata/en/31/daa0404dd52b54e10000000a1550b0/content.htm
First part of my question is regarding to this URL. The URL has a strange format.
The second part is regarding to the form of soap:address in this generated WSDL. Here I have problems with the use of this "& a m p ;" string. But I have no influence on it. If I deliver my partners the obove mentioned URL to the WSDL and the WSDL contains this soap:address URL my partner will probably have the same problem like I with my XML Spy.
Gaurav
I don't understand you answer. I know the correct soap address but the IB tool generates it with this "& a m p ;" string instead of only "&". Thatu2019s the point. No idea if and how I can handle this.
But thank you for the note number. Was helpful. The number is in the online documentation too but I've read over it.
To bad that the online documentation isn't correct regarding to the soap address. But believe me the German version is even worse. There you can find the two soap adapter settings (XI parameter: interface namespace, interface) that are no longer existed in PI 7.1
Now I will test if a .NET application can handle this soap address correctly.
Edited by: Gil Ritter on Nov 14, 2008 11:25 AM -
Sender SOAP Adapter problem in PI 7.1
Hello Everyone,
I have a problem with Sender SOAP Adapter
In PI 7.0 i am able to receive the messages through sender SOAP Adapter for both HTTP and HTTPS. But when i am testing in PI 7.1 i am unable to receive any messages at Adapter level for both HTTP and HTTPS
All sender leagcy system are getting different error messages like
1. 400 HTTP Bad request.
2. Invalid request.
3. BAPI error message
Could any one please assist me in this problem.
Thanks
VickHi Vick,
Try like this......in ID from your sender agreement in which you have your sender SOAP comm channel, from menu select Display WSDL and then copy the WSDL URL and give it to source applications to use it.............create a service user for them to access PI 7.1 server while sending the SOAP req msg.............
your source applications may have to generate proxy from this WSDL URL in their application and then they can send a SOAP req msg to your PI 7.1 server............
Regards,
Rajeev Gupta -
Problems using access control in sender agreement for SOAP adapter 7.1
I am trying to use Access Control Lists to restrict user access to web services/interfaces which are exposed via PI. This can be configured via the Integration Builder Directory using the u201CAssigned Usersu201D tab of both Communication Components (Business System) and Sender Agreements.
The configuration is via the above mentioned components. However, I understand that itu2019s the adapters which at runtime are responsible for actually applying these checks.
I have been having problems getting the access control to work using a setup involving a SOAP adapter of type SAP BASIS 7.10.
The symptom of the problem is that although the access control works as expected at the Business System level, any settings at the Sender Agreement level appear to have absolutely no effect whatsoever.
I have confirmed that I have no problems if I use an adapter of type SAP BASIS 7.00. However, I really need to get this working on 7.1.
I have looked on the SAP support portal but can not find any notes that relate to this.
Has anyone else had a similar problem? And have you found a fix for it?
Any suggestions would be welcome.
Edited by: Malcolm Dingle on Jun 17, 2009 1:08 PMHi Shai,
Please have a look at the following link and see if it helps you .
It deals with SOAP adapter installation and activation
Re: SOAP adapter installation and activation
Best Regards
Edited by: Prakash Bhatia on May 8, 2009 11:51 AM -
XI Soap Adapter: problems in parsing XML
Hallo,
I call a Web Service using XMLSpy and this is the response (note tag <File>):
<SOAPSDK4:ExpBaselineResponse xmlns:SOAPSDK4="http://tempuri.org/PRWBS_PRIMAVERA/message/">
<RESULT>OK</RESULT>
<File><?xml version='1.0' encoding='UTF-8'?>
<Dati:Parametri xmlns:Dati="Schema">
<ELSAG xmlns="Schema">
<proj_id>4623</proj_id>
<BS_short_name>FS0084AAAA01 - B1</BS_short_name>
<BS_proj_id>1302</BS_proj_id>
<TARGET_START>2004-04-01</TARGET_START>
....etc...
If I call the same Web Service from XI, this is the response:
<SOAPSDK4:ExpBaselineResponse xmlns:SOAPSDK4="http://tempuri.org/PRWBS_PRIMAVERA/message/" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAPSDK3="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAPSDK2="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAPSDK1="http://www.w3.org/2001/XMLSchema">
<RESULT>OK</RESULT>
<File><?xml version="1.0" standalone="yes"?>
<Dati:Parametri xmlns:Dati="Schema">
<ELSAG xmlns="Schema">
<proj_id>4623</proj_id>
<BS_short_name>FS0084AAAA01 - B1</BS_short_name>
<BS_proj_id>1302</BS_proj_id>
<TARGET_START>2004-04-01</TARGET_START>
....etc....
In my flow, I use a java mapping to parse the content of tag <File> into a message.
My mapping works correctly only with the first option.
Is it possible to change XI Soap Adapter encoding for HTML?
My java mapping uses this parser:
public void execute(InputStream MyInputStream, OutputStream MyOutputStream)
throws StreamTransformationException {
SAXReader reader = new SAXReader();
Document document;
try {
document = reader.read(MyInputStream);
this instruction generates an Exception only with XI message.
Can anybody help me??
Thanks;-)Hi,
I would suggest you go through this Pdf for the SOAP Adapter configuration:
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/40728f7b-0401-0010-d9bc-8c73884a3789
And also have a glance on the info for webservices given below,
Just go through these links and they will surely help you learn more about Webservices:
<a href="/people/siva.maranani/blog/2005/09/03/invoke-webservices-using-sapxi Webservices using SAPXI</a>
<a href="/people/siva.maranani/blog/2005/05/23/communication-between-sap-system-webservice-using-proxies between SAP System & Webservice Using Proxies</a>
You can Go through these links to get some info about accessing Webservices:
http://help.sap.com/saphelp_nw04/helpdata/en/d6/f9bc3d52f39d33e10000000a11405a/content.htm
http://help.sap.com/saphelp_nw04/helpdata/en/b7/d7baaf1481a349ab723e3acd7334b3/content.htm
Go through these links which will surely help you find an answer to your problem.....
Regards,
Abhy -
Hi,
After reading through the forums I understood that SOAP adapter turns green only with the first message.
I have set everything up and sending a test message with XML Spy:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SOAP-ENV:Body>
<m:SIMPLE_OUT_MI xmlns:m="http://test.com/soapTest">
<TEXT>TEST</TEXT>
</m:SIMPLE_OUT_MI>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
XMLSpy returns me an empty message back:
<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP:Header/>
<SOAP:Body/>
</SOAP:Envelope>
I can not see the message in SXMB_MONI and the adapter stays gray.
Where do I look for the problem ?Hi Vick,
Try like this......in ID from your sender agreement in which you have your sender SOAP comm channel, from menu select Display WSDL and then copy the WSDL URL and give it to source applications to use it.............create a service user for them to access PI 7.1 server while sending the SOAP req msg.............
your source applications may have to generate proxy from this WSDL URL in their application and then they can send a SOAP req msg to your PI 7.1 server............
Regards,
Rajeev Gupta -
Problems with SOAP Adapter/Interface
Hi Experts,
we currently try and experiment with XI 3.0 Stack 09 and the SOAP adapter respectively.
We started with a simple interface (foo..., see wsdl attachment) that we want to provide by XI.
All configurations (SLD, Integration Repository, Integration Directory) should have been done accordingly as we suppose, similar to other szenarios we have already implemented.
When we send a SOAP request based on a generated wsdl to XI we get the exception at the bottom of this text, containing e.g.
com.sap.aii.messaging.srt.BubbleException: error during conversion [null "null"];
com.sap.aii.messaging.util.XMLScanException: Parsing an empty source. Root element expected!
For sending the SOAP message we used XMLSpy.
Did someone have similar problems or can give us an working WSDL example, or some hint?
Thanks in advance,
Klaus Lukas
foo.wsdl
<?xml version="1.0" encoding="ISO-8859-1"?>
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:p1="urn://poreceive.xi.pse.siemens.com" targetNamespace="urn://poreceive.xi.pse.siemens.com" name="foo_out_sync">
<wsdl:types>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn://poreceive.xi.pse.siemens.com" targetNamespace="urn://poreceive.xi.pse.siemens.com">
<xsd:element name="foo" type="foo_DT"/>
<xsd:complexType name="foo_DT">
<xsd:annotation>
<xsd:appinfo source="http://sap.com/xi/TextID">
fe0bb241d2a011d9cd15e9729ee2f568
</xsd:appinfo>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="item" type="xsd:string">
<xsd:annotation>
<xsd:appinfo source="http://sap.com/xi/TextID">
fe0bb240d2a011d9acede9729ee2f568
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
</wsdl:types>
<wsdl:message name="foo">
<wsdl:part name="foo" element="p1:foo"/>
</wsdl:message>
<wsdl:portType name="foo_out_sync">
<wsdl:operation name="foo_out_sync">
<wsdl:input message="p1:foo"/>
<wsdl:output message="p1:foo"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="foo_out_syncBinding" type="p1:foo_out_sync">
<soap:binding xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="foo_out_sync">
<wsdl:input>
<soap:body xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="foo_out_syncService">
<wsdl:port name="foo_out_syncPort" binding="p1:foo_out_syncBinding">
<soap:address location="http://xxxxxxxx:8000/XISOAPAdapter/MessageServlet?channel=:Foo_SOAP_Service:SOAP_Foo_out&version=3.0&Sender.Service=Foo_SOAP_Service&Interface=urn%3A%2F%2Fporeceive.xi.pse.siemens.com%5Efoo_out_sync" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
soap message incl. error
<?xml version="1.0"?>
<!-- see thedocumentation -->
<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP:Body>
<SOAP:Fault>
<faultcode>SOAP:Server</faultcode>
<faultstring>error during
conversion</faultstring>
<detail>
<s:SystemError
xmlns:s="http://sap.com/xi/WebService/xi2.0">
<context>XIAdapter</context>
<code>XMLScanException</code>
<text><![CDATA[
com.sap.aii.af.mp.module.ModuleException
at com.sap.aii.af.mp.soap.ejb.XISOAPAdapterBean.process
(XISOAPAdapterBean.java:697)
at
com.sap.aii.af.mp.module.ModuleLocalLocalObjectImpl3.process
(ModuleLocalLocalObjectImpl3.java:103)
at com.sap.aii.af.mp.ejb.ModuleProcessorBean.process
(ModuleProcessorBean.java:221)
at
com.sap.aii.af.mp.processor.ModuleProcessorLocalLocalObjectImpl0.process
(ModuleProcessorLocalLocalObjectImpl0.java:103)
at com.sap.aii.af.mp.soap.web.MessageServlet.doPost
(MessageServlet.java:543)
at javax.servlet.http.HttpServlet.service
(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service
(HttpServlet.java:853)
at
com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet
(HttpHandlerImpl.java:385)
at
com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleReques
t(HttpHandlerImpl.java:263)
at
com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet
(RequestAnalizer.java:340)
at
com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet
(RequestAnalizer.java:318)
at
com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebConta
iner(RequestAnalizer.java:821)
at
com.sap.engine.services.httpserver.server.RequestAnalizer.handle
(RequestAnalizer.java:239)
at com.sap.engine.services.httpserver.server.Client.handle
(Client.java:92)
at com.sap.engine.services.httpserver.server.Processor.request
(Processor.java:147)
at
com.sap.engine.core.service630.context.cluster.session.ApplicationSessio
nMessageListener.process(ApplicationSessionMessageListener.java:37)
at
com.sap.engine.core.cluster.impl6.session.UnorderedChannel$MessageRunner
.run(UnorderedChannel.java:71)
at com.sap.engine.core.thread.impl3.ActionObject.run
(ActionObject.java:37)
at java.security.AccessController.doPrivileged(Native Method)
at com.sap.engine.core.thread.impl3.SingleThread.execute
(SingleThread.java:94)
at com.sap.engine.core.thread.impl3.SingleThread.run
(SingleThread.java:162)
Caused by: com.sap.aii.messaging.srt.BubbleException: error during
conversion [null "null"]; nested exception caused by:
com.sap.aii.messaging.util.XMLScanException: Parsing an empty source.
Root element expected!
at
com.sap.aii.messaging.srt.xmb.XMBWebServiceExtension.onResponseToWS
(XMBWebServiceExtension.java:936)
at
com.sap.aii.messaging.srt.xmb.XMBWebServiceExtension.invokeOnResponse
(XMBWebServiceExtension.java:602)
at com.sap.aii.messaging.srt.ExtensionBubble.onMessage
(ExtensionBubble.java:58)
at com.sap.aii.af.mp.soap.ejb.XISOAPAdapterBean.process
(XISOAPAdapterBean.java:576)
... 20 more
Caused by: com.sap.aii.messaging.util.XMLScanException: Parsing an
empty source. Root element expected!
at com.sap.aii.messaging.util.StreamXMLScannerImpl.open
(StreamXMLScannerImpl.java:104)
at com.sap.aii.messaging.mo.DefaultItem.setData
(DefaultItem.java:294)
at
com.sap.aii.messaging.srt.xmb.XMBWebServiceExtension.makeItemFromPayload
(XMBWebServiceExtension.java:972)
at
com.sap.aii.messaging.srt.xmb.XMBWebServiceExtension.onResponseToWS
(XMBWebServiceExtension.java:879)
... 23 more
]]></text>
</s:SystemError>
</detail>
</SOAP:Fault>
</SOAP:Body>
</SOAP:Envelope>Hi Klaus
In your wsdl file the soap address tag (given below)
<b><soap:address location="http://xxxxxxxx:8000/XISOAPAdapter/MessageServlet?channel=:Foo_SOAP_Service:SOAP_Foo_out&version=3.0&Sender.Service=Foo_SOAP_Service&Interface=urn%3A%2F%2Fporeceive.xi.pse.siemens.com%5Efoo_out_sync" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"/></b>
is to be edited as
<b><soap:address location="http://xxxxxxxx:50000//XISOAPAdapter/MessageServlet?channel=:Foo_SOAP_Service:SOAP_Foo_out" /></b>
because the soap address format should be like :
<i>http://host:port/XISOAPAdapter/MessageServlet?channel=party:service:channel</i>
For more information :
http://help.sap.com/saphelp_nw04/helpdata/en/0d/5ab43b274a960de10000000a114084/frameset.htm
Hope this will be helpful.
Regards
Suraj -
SOAP adapter URL causing problems
Hi gurus,
As of PI 7.1, SAP is recommending to use:
http://host:port/XISOAPAdapter/MessageServlet?senderParty=FP&senderService=FS&interface=IF&receiverParty=TP&receiverService=TS&interfaceNamespace=IFNamespace
instead of
http://<serverhost>:<port>/XISOAPAdapter/MessageServlet?channel=<party>:<ServiceName>:<ChannelName>
while sending messages to the SOAP adapter. BUT, the new format is causing problems when the developers are trying to import the WSDL (to Webdynpro, eclipse, etc). Also, XMLSpy complains that the xml is not well-formed because of the soap address field.
So I removed the & signs and replaced them with the escape equivalent of & for the new format and tried to use:
http://host:port/XISOAPAdapter/MessageServlet?senderParty=FP&senderService=FS&interface=IF&receiverParty=TP&receiverService=TS&interfaceNamespace=IFNamespace
But this time, SOAP adapter replies saying there is no binding. How to overcome this?
Thanks
Gokhantry this format:
http://<hostname OR IP addr>:<portno>/XISOAPAdapter/MessageServlet?channel=:<SenderService>:<SenderSOAPCC>&version=3.0&Sender.Service=<senderService>&Interface=<senderNamespace>%5E<senderMI> -
Hi!
I need to implement the following scenario:
In SAP an user exit calls an RFC which uses a TCP/IP Connection (SM59) to the XI and sends data over this connection to it. The XI connects via a SOAP adapter my server program and sends the data in a soap stream to this server.
This works sometimes ok and sometimes not.
The status for those messages in the XI is "scheduled for outbound processing" with a little black arrow pointing to the right.
The error message in the Runtime Workbench for such a job is:
SOAP: request message entering the adapter
SOAP: call failed
SOAP: sending a delivery error ack ...
SOAP: sent a delivery error ack
How can I find out what the problem is?
Thanks,
KonradHi,
When a message is scheduled for outbound processing, it is normally sent automatically.
does it always sit at this status or does it change after a while ?
If it is an issue with the connectivity from the Integration Server to the Adapter Framework you would get a different error message.
If it is an issue with connectivity from the SOAP adapter to your target, you would also get a different error - it is likely to be shown as an outright failure. Plus the error shown in the message is likely to be
"com.sap.aii.af.ra.ms.api.DeliveryException: java.net.ConnectException: Connection refused"
Hope this helps.
i think you need to get Basis involved to see why messages are not getting sent from the rfc queues automatically all the time.
Cheers
Colin. -
SP13 : SOAP Adapter Problem
Hi All,
Recently we upgraded from SP9 to SP13. Every since we upgraded to SP13 we are experiencing weird problem with Outbound SOAP adapter.
We have exposed an outbound interface as a webservice, which is consumed by a .Net application. When the .Net application try's to call the webservice, we get soap exception "Server Error".
To make sure the call is reaching XI, we put in wrong credentials and we got authorization error. So the call is getting to XI.
Has anyone encountered this weird problem? Any thoughts or suggestions will be very much appreciated.
Thanks,
naveenHi,
There is a tool called SOAPScope from www.Mindreef.com
Its a webservices diagnostic tool. Use this to troubleshoot.you can get a evaluation for 4 days i guess.
Regards,
Sridhar -
Hello,
we are trying to use the SOAP adapter to send several RFCs
to the backend, our client uses Apache Axis.
We first tried the url http://
AxisFault
faultCode: Server
faultSubcode:
faultString: Application Error
faultActor:
faultNode:
faultDetail:
QIRF_SEND_REQUIRMENTS_GET_DAT2.Exception:
/code
It seems the message is sent to the backend (because
NO_SUBSYS_DEFINED is one of the exceptions defined for
QIRF_SEND_REQUIRMENTS_GET_DAT2 and I see successful
delivery in the RWB) but the content is not recognized.
The almost identical message sent via the HTTP-adapter
works without problems:
<?xml version="1.0" encoding="iso-8859-1" ?>
<rfc:QIRF_SEND_REQUIRMENTS_GET_DAT2 xmlns:rfc="urn:sap-com:document:sap:rfc:functions">
<rfc:T_QAIVCTAB />
<rfc:T_QAIMVTAB />
<rfc:T_QAICATAB />
<rfc:T_QIERRTAB />
<rfc:I_IND_EVALUATE_CHARACTERISTIC>X</rfc:I_IND_EVALUATE_CHARACTERISTIC>
<rfc:I_IND_SET_BLOCK_INDICATORS>X</rfc:I_IND_SET_BLOCK_INDICATORS>
<rfc:I_IND_TRANSFER_USAGE_DEC_CODES>X</rfc:I_IND_TRANSFER_USAGE_DEC_CODES>
<rfc:I_IND_MULTI_TRANSFER_POSSIBLE>X</rfc:I_IND_MULTI_TRANSFER_POSSIBLE>
<rfc:I_QAILS>
<rfc:SATZART>Q40</rfc:SATZART>
<rfc:SUBSYS>ICD564</rfc:SUBSYS>
</rfc:I_QAILS>
</rfc:QIRF_SEND_REQUIRMENTS_GET_DAT2>
Can anyone help ?
Thanks in advance.
PS: What is the technical difference between the two SOAP
URLs and why are they on different ports? Is there
documentation explaining these issues? And what exactly
does "Use query" string" in the configuration tab for a
SOAP Sender communication channel mean? Which parameters
are allowed for this query string?Hi!!!
The first url you use when you want to send a message to your SOAP adapter.
The second one you use with a plain HTTP adapter - you send a message directly to a pipeline.
Check this link:
http://help.sap.com/saphelp_nw04s/helpdata/en/fc/5ad93f130f9215e10000000a155106/frameset.htm
Regards,
Andrzej
Maybe you are looking for
-
Backup 3 v3.2 Restore Solutions
Hello, First, I know I should not have still been using backup 3 for backup solutions. But it's a solution that was working and time just slipped away on me. So yes, Ill change that... but in the meantime, I am wondering if anyone knows how to restor
-
TS3989 Can you use the search function in a shared photo stream? How?
Can you use the search function in a shared photo stream? When I try to search in the shared photo stream it goes to search in my photos.
-
Is there an after market Thunderbolt adaptor for an open PCI slot?
I would like to use thunderbolt external hard drives with my 2 year old Mac Tower. Is there a thunderbolt PCI expansion card I can install for the newer drives (which seems to be doing away with firewire)? Or if worst case a USB 3 PCI expansion car
-
What do I need to display whatever I call up on my MacBook running OSX 7.5 on a TV with a USB port?
-
MY WINDOWS XP SHUTS DOWN & RE-BOOTS ALMOSST EVERY TIME I CONNECT IPHONE USB.I HAVE HAD THE PHONE FOR 1 MONTH & IS A HIT OR MISS TRYING TO SYNC.PLEASE HELP