Help with soap adapter
hi,
how can i configure the standard http user-authentication in a soap request?
i tried to set the user-authentication field and password under the url-field, but i still get this exception:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
- <!-- Aufruf eines Adapters
-->
- <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="HTTP">ADAPTER.HTTP_EXCEPTION</SAP:Code>
<SAP:P1 />
<SAP:P2 />
<SAP:P3 />
<SAP:P4 />
<SAP:AdditionalText>HTTP 401 Unauthorized</SAP:AdditionalText>
<SAP:ApplicationFaultMessage namespace="" />
<SAP:Stack />
<SAP:Retry>M</SAP:Retry>
</SAP:Error>
and this html-message in the main-attachment:
Sie haben nicht die erforderliche Berechtigung, um die Seite anzuzeigen
Sie verfügen nicht über die Berechtigung, dieses Verzeichnis oder diese Seite unter Verwendung der von Ihnen bereitgestellten Anmeldeinformationen anzuzeigen, weil Ihr Webbrowser ein WWW-Authenticate-Headerfeld sendet, das die Konfiguration des Webservers nicht akzeptieren kann.
Versuchen Sie Folgendes:
Wenn Sie Ihrer Meinung nach in der Lage sein sollten, dieses Verzeichnis bzw. diese Seite anzuzeigen, wenden Sie sich an den Websiteadministrator.
Klicken Sie auf die Schaltfläche Aktualisieren, um es mit anderen Anmeldeinformationen erneut zu versuchen.
HTTP Error 401.2 - Unauthorized: Access is denied due to server configuration favoring an alternate authentication method. (HTTP-Fehler 401.2 - Nicht autorisiert: Der Zugriff wurde verweigert, weil die Serverkonfiguration eine andere Authentifizierungsmethode verlangt.)
Internetinformationsdienste (Internet Information Services oder IIS)
it should be the simple standard authentication then this one:
https://websmp104.sap-ag.de/notes
thx for any help
mfg Ronald Grafl
Hi,
Error: HTTP_RESP_STATUS_CODE_NOT_OK 401 Unauthorized
Description: The request requires user authentication
Possible Tips:
Check XIAPPLUSER is having this Role -SAP_XI_APPL_SERV_USER
If the error is in XI Adapter, then your port entry should J2EE port 5<System no>
If the error is in Adapter Engine
then have a look into SAP note- 821026, Delete the Adapter Engine cache in transaction SXI_CACHE Goto --> Cache.
May be wrong password for user XIISUSER
May be wrong password for user XIAFUSER
for this Check the Exchange Profile and transaction SU01, try to reset the password -Restart the J2EE Engine to activate changes in the Exchange Profile After doing this, you can restart the message
See the below link
HTTP* Errors /people/krishna.moorthyp/blog/2006/07/23/http-errors-in-xi
Regards
Chilla
Similar Messages
-
Message Level Security with SOAP Adapter
Hi,
I need to use Message Level Security with my SOAP Adapter. Please let me know if anyone has done the same in the past?
What are the steps I would need to do? How can I use WSS based security in the SOAP Adapter?Hi,
Message-level security is recommended and sometimes a prerequisite for inter-enterprise communication.
It improves communication-level security by adding security features that are particularly important for inter-enterprise
Message-level encryption is required if message content needs to be confidential not only on the communication lines but also in intermediate message stores.
Refer
How to use Client Authentication with SOAP Adapter
XML Encryption Using Web Services Security in SAP NetWeaver XI
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/f0650f56-7587-2910-7c99-e1b6ffbe4d50
http://help.sap.com/saphelp_nw04/helpdata/en/a8/882a40ce93185de10000000a1550b0/frameset.htm
Thanks
swarup -
HTTP 415 Unsupported Media Type with SOAP adapter ?
Hello All,
Iam getting HTTP 415 Unsupported Media Type with SOAP adapter error while executing the scenario.
i got one thread which have the solution. iam not getting exactly how to write message transform Bean.
HTTP 415 Unsupported Media Type with SOAP adapter trying to put SOAP header
Please tell me where i need to write the MessageTransformBean at sender adapter or receiver file adapter.
Thanks and regards,
chinnaHi Chinna,
Have you checked this
http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
Regards
Ramesh -
Prolog with soap adapter in PI
Dear All,
We run a scenario Proxy=>PI=>HTTP
The remote service accepts messages POSTed using either the form-encoded format (name, value pairs)
or the multi-part mime format which enables the files to be passed to the web service.
In both cases, the external service replies with a multi-part message.
We are going to use the SOAP adapter (plain HTTP does not support attachments)
with nosoap flagged.
What is best approach to add a prolog before the actual XML with SOAP adapter,
to simulate the form-encoded format?
Example :
USER=USER1&PASS=PASS1&DB=DB1
In the 2nd situation, how to create the different documents before the actual XML?
Example :
7d924f5b0464
Content-Disposition: form-data; name="USER"
USER1
7d924f5b0464
Content-Disposition: form-data; name="PASS"
PASS1
7d924f5b0464
Content-Disposition: form-data; name="DB"
DB1
Best regards,
KR,
LaurentDear All,
We run a scenario Proxy=>PI=>HTTP
The remote service accepts messages POSTed using either the form-encoded format (name, value pairs)
or the multi-part mime format which enables the files to be passed to the web service.
In both cases, the external service replies with a multi-part message.
We are going to use the SOAP adapter (plain HTTP does not support attachments)
with nosoap flagged.
What is best approach to add a prolog before the actual XML with SOAP adapter,
to simulate the form-encoded format?
Example :
USER=USER1&PASS=PASS1&DB=DB1
In the 2nd situation, how to create the different documents before the actual XML?
Example :
7d924f5b0464
Content-Disposition: form-data; name="USER"
USER1
7d924f5b0464
Content-Disposition: form-data; name="PASS"
PASS1
7d924f5b0464
Content-Disposition: form-data; name="DB"
DB1
Best regards,
KR,
Laurent -
HTTP 415 Unsupported Media Type with SOAP adapter trying to put SOAP header
Hello,
I am trying to put data into soap header using soap receiver adapter. Seems like building the complete soap message is the right way to go. Thus I wrote a java program to build the complete soap message (soap envelop, soap header and soap body which contains the message PI received from the sender). Mapping program works well. However when I ran the scenario, I got Error "SOAP: response message contains an error XIAdapter/HTTP/ADAPTER.HTTP_EXCEPTION - HTTP 415 Unsupported Media Type" when calling the receiver's web service (the SOAP receiver adapter CC have the "Do Not use SOAP Envelop" checked). Anyone knows why I got this error? From google, seems like this error is because the http's content-type is set to other type, rather than "text/xml". However in soap CC there is no option to control this.
The message sent to the receiver is (after mapping);
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header>
<SOAP-SEC:Signature xmlns:SOAP-SEC="http://schemas.xmlsoap.org/soap/security/2000-12" MyAttr="value">My Test Value</SOAP-SEC:Signature>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<ns1:UpdateEquipment xmlns:ns1="http://mycomp.com/mywebservice">
<ns1:EquipmentNumber>000000012345</ns1:EquipmentNumber>
<ns1:LicensePlate>654321</ns1:LicensePlate>
</ns1:UpdateEquipment>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Anyone can help?
ThanksWhen you check "Do Not use SOAP Envelop", the SOAP adapter chooses application/xml instead of text/xml.
You can change the content type with help of the MessageTransformBean. You put the bean in the module chain of the receiver channel and add the parameter Transform.ContentType = text/xml
See
http://help.sap.com/saphelp_nwpi71/helpdata/EN/57/0b2c4142aef623e10000000a155106/frameset.htm -
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 -
XIServer error raised: 503 Service Unavailable with SOAP Adapter
Hi,
We are getting a very strange error from a process that is working fine in 2 other environments.
We are sending a message into the SOAP receiver adapter and are getting the following error at the Call Adapter part of the process :
<?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>XIServer</SAP:Category>
<SAP:Code area="INTERNAL">HTTP_RESP_STATUS_CODE_NOT_OK</SAP:Code>
<SAP:P1>503</SAP:P1>
<SAP:P2>Service Unavailable</SAP:P2>
<SAP:P3 />
<SAP:P4 />
<SAP:AdditionalText><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title>Error Report</title> <style> td {font-family : Arial, Tahoma, Helvetica, sans-serif; font-size : 14px;} A:link A:visited A:active </style> </head> <body marginwidth="0" marginheight="0" leftmargin="0" topmargin="0" rightmargin="0"> <table width="100%" cellspacing="0" cellpadding="0" border="0" align="left" height="75"> <tr bgcolor="#FFFFFF"> <td align="left" colspan="2" height="48"><font face="Arial, Verdana, Helvetica" size="4" color="#666666"><b>&nbsp;&nbsp;503 &nbsp Service Unavailable</b></font></td> </tr> <tr bgcolor="#3F73A3"> <td height="23" width="84"><img width=1 height=1 border=0 alt=""></td> <td height="23"><img width=1 height=1 border=0 alt=""></td> <td align="right" height="23"><font face="Arial, Verdana, Helvetica" size="2" color="#FFFFFF"><b>SAP J2EE Engine/6.40&nbsp;</b></font></td> </tr> <tr bgcolor="#9DCDFD"> <td height="4" colspan="3"><img width=1 height=1 border=0 alt=""></td> </tr> </table> <br><br><br><br><br><br> <p><font face="Arial, Verdana, Helvetica" size="3" color="#000000"><b>&nbsp;&nbsp;The requested application, AFW, is currently unavailable.</b></font></p> <p><font face="Arial, Verdana, Helvetica" size="2" color="#000000"><table><tr><td valign="top"><b>&nbsp;Details:</b></td><td valign="top"><PRE>No details available</PRE></font></td></tr></table></font></p> </body> </html></SAP:AdditionalText>
<SAP:ApplicationFaultMessage namespace="" />
<SAP:Stack>HTTP response contains status code 503 with the description Service Unavailable XML element Envelope missing in SOAP message header (SAP XI Extension)</SAP:Stack>
<SAP:Retry>N</SAP:Retry>
</SAP:Error>
We are on XI 3.0 SP13.
Any suggestions ?
Kind regards
Colin.Hi Colin,
Quick look into these-
1) Are you able to test the WebService, because the error tells about unavailable...
For more-
/people/siva.maranani/blog/2005/09/03/invoke-webservices-using-sapxi
/people/siva.maranani/blog/2005/03/01/testing-xi-exposed-web-services
2) Is your SOAP Receiver COnfiguration is correct
~ http://help.sap.com/saphelp_nw2004s/helpdata/en/29/5bd93f130f9215e10000000a155106/content.htm
3) Check the wsdl is correct and try look into the input message for the Webservice(SOAP Adapter)
Have a look into this thread-
503 service unavailable
Hope this helps,
Regards,
Moorthy -
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. -
Acknowlegements with SOAP adapter
Hello gurus,
I'm aware of the acknowledgements with the proxies. I have scenarios of SOAP-PI-Proxy and Proxy-PI-SOAP, where SOAP adapter sends or receives messages with customly developed WS.
I need to direct the WS developer team to implement acknowledgement mechanisms. As the SOAP adapter only supports system acknowledgements, how can they request acknowledgements while sending messages or how can they return them when they receive messages? Also, they need to be able to process these acknowledgements.
The WS are developed in Java, and no ccBPM is used, so I will need Java examples if this is done in the coding. Thank you for your inputs.
Kind regards,
GökhanHi,
1) You can develop a common interface from SOAP --> XI --> Target for the acknowledgement part. This can be used across any SOAP --> XI --> Target scenario ....provided source and target systems are not changing....even if the systems change, the configuration needs to be done accordingly (agreements, routing).
2) Create a data structure of your need on the SOAP --> XI side...this may include all the details for a particular interface (MI name, Sender, Receiver, Scenario Name, ACK status +ve / -ve, etc).
3) Do the mapping of this structure with the necessary target structure and also do the configuration.
4) Once Config is done create a wsdl file based on the interface details and provide it to the SOAP sender team.
This wsdl file will act as a webservice for the sender side. Ask the developers to develop a scenario at their end which will trigger this WS (of XI) and will send the necessary ACK details.
In this way you will get the ACK details for a particular scenario and you will not even need to change the QoS of any scenario....The only thing needs to be taken care is by the sender system on how / when they trigger the scenario....this is purely based on your business needs....hope it helps...
Regards,
Abhishek. -
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 -
Call ABAP-Proxy with SOAP adapter?
Hi all,
for a PI7.1-scenario I would like to use the Lookup-API in mapping. As I know I can use either RFC or SOAP channels, however I would rather call an ABAP-Proxy in my backend system instead.
So my question is: Is it technically possible to use the SOAP-adapter to call an ABAP-Proxy?
Your help would be appreciated, best regards
DavidHi Stefan,
Interesting answer here and one that has got me curious. Hope you can help.
1. When you say it is going to be possible to call a ABAP proxy using a UDF in the mapping of XI ( Lookup ), would it be using the WS Adapter of PI 7.1?
2. If 1 is yes, is there a new API code to do this, or is it the same lookup code as used previously in XI 3.0 and PI 7.0 Days?
3. If 1 is no, can you explain maybe a little more on how this would be possible using the standard SOAP adapter of XI?
Thanks a bunch.
Regards
Bhavesh -
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: <?xml version="1.0" encoding="utf-8"?><
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.
-AaronHi Aaron,
about "usario" being part of payload: The receiver seems to want it that way.As long as transport protocol is HTTPS you should not be worried about this.
About your escaped XML: I'm assuming this is a follow up of your last post? Anyways, having an additional <?xml version...> statement within an xml document is not allowed and would render the whole document ill-formed (is that proper English?) Seems like the .net program implicitly sends all payload data (maybe only the actual data within the tags) through a serializer , which is quite normal / best practice.
You could do so on PI also of course. As the .net program works, receiver should be able (or even may assume) that any data within <MyPayload> is serialized. Have a look at my post in your former thread about some possible util classes for that. Re: How to insert <?xml version="1.0" encoding="utf-8"?> before an element (Beware, I'm not a Java expert and haven't done this yet, so YMMV)
HTH
Cheers
Jens -
hi,
I am calling an external webservice which has a string parameter.I am polling my table and routing it to the SOAP adapter.It worked well until yesterday and suddenly today it is throwing the below error.Can any body help me? below is the complete error stack
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"><env:Header/><env:Body><env:Fault xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"><faultcode>env:ESBMessageProcessingFailed</faultcode><detail><EventName>ORAVCCSSYS.SOAPVCCS1.StatusUpdate</EventName><Cause>An unhandled exception has been thrown in the ESB system. The exception reported is: "oracle.tip.esb.server.common.exceptions.BusinessEventRetriableException: An unhandled exception has been thrown in the ESB system. The exception reported is: "org.collaxa.thirdparty.apache.wsif.WSIFException: exception on JaxRpc invoke: HTTP transport error: javax.xml.soap.SOAPException: java.security.PrivilegedActionException: oracle.j2ee.ws.saaj.ContentTypeException: Not a valid SOAP Content-Type: text/html
at com.collaxa.cube.ws.wsif.providers.oc4j.jaxrpc.WSIFOperation_JaxRpc.invokeOperation(WSIFOperation_JaxRpc.java:1717)
at com.collaxa.cube.ws.wsif.providers.oc4j.jaxrpc.WSIFOperation_JaxRpc.invokeRequestResponseOperation(WSIFOperation_JaxRpc.java:1463)
at com.collaxa.cube.ws.wsif.providers.oc4j.jaxrpc.WSIFOperation_JaxRpc.executeRequestResponseOperation(WSIFOperation_JaxRpc.java:1185)
at oracle.tip.esb.server.common.wsif.WSIFInvoker.executeOperation(WSIFInvoker.java:507)
at oracle.tip.esb.server.common.wsif.WSIFInvoker.nextService(WSIFInvoker.java:430)
at oracle.tip.esb.server.common.wsif.WSIFInvoker.nextService(WSIFInvoker.java:447)
at oracle.tip.esb.server.service.impl.outadapter.OutboundAdapterService.nextService(OutboundAdapterService.java:184)
at oracle.tip.esb.server.service.impl.outadapter.OutboundAdapterService.processBusinessEvent(OutboundAdapterService.java:112)
at oracle.tip.esb.server.dispatch.InitialEventDispatcher.dispatchNonRoutingService(InitialEventDispatcher.java:106)
at oracle.tip.esb.server.dispatch.InitialEventDispatcher.dispatch(InitialEventDispatcher.java:85)
at oracle.tip.esb.server.dispatch.BusinessEvent.raise(BusinessEvent.java:1416)
at oracle.tip.esb.server.service.impl.soap.EventOracleSoapProvider.raiseEvent(EventOracleSoapProvider.java:314)
at oracle.tip.esb.server.service.impl.soap.EventOracleSoapProvider.processMessage(EventOracleSoapProvider.java:187)
at oracle.j2ee.ws.server.provider.ProviderProcessor.doEndpointProcessing(ProviderProcessor.java:956)
at oracle.j2ee.ws.server.WebServiceProcessor.invokeEndpointImplementation(WebServiceProcessor.java:349)
at oracle.j2ee.ws.server.provider.ProviderProcessor.doRequestProcessing(ProviderProcessor.java:466)
at oracle.j2ee.ws.server.WebServiceProcessor.processRequest(WebServiceProcessor.java:114)
at oracle.j2ee.ws.server.WebServiceProcessor.doService(WebServiceProcessor.java:96)
at oracle.j2ee.ws.server.WebServiceServlet.doPost(WebServiceServlet.java:177)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:713)
at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:370)
at com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:871)
at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:453)
at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:302)
at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:190)
at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
at java.lang.Thread.run(Thread.java:595)
at oracle.tip.esb.server.common.wsif.WSIFInvoker.executeOperation(WSIFInvoker.java:539)
at oracle.tip.esb.server.common.wsif.WSIFInvoker.nextService(WSIFInvoker.java:430)
at oracle.tip.esb.server.common.wsif.WSIFInvoker.nextService(WSIFInvoker.java:447)
at oracle.tip.esb.server.service.impl.outadapter.OutboundAdapterService.nextService(OutboundAdapterService.java:184)
at oracle.tip.esb.server.service.impl.outadapter.OutboundAdapterService.processBusinessEvent(OutboundAdapterService.java:112)
at oracle.tip.esb.server.dispatch.InitialEventDispatcher.dispatchNonRoutingService(InitialEventDispatcher.java:106)
at oracle.tip.esb.server.dispatch.InitialEventDispatcher.dispatch(InitialEventDispatcher.java:85)
at oracle.tip.esb.server.dispatch.BusinessEvent.raise(BusinessEvent.java:1416)
at oracle.tip.esb.server.service.impl.soap.EventOracleSoapProvider.raiseEvent(EventOracleSoapProvider.java:314)
at oracle.tip.esb.server.service.impl.soap.EventOracleSoapProvider.processMessage(EventOracleSoapProvider.java:187)
at oracle.j2ee.ws.server.provider.ProviderProcessor.doEndpointProcessing(ProviderProcessor.java:956)
at oracle.j2ee.ws.server.WebServiceProcessor.invokeEndpointImplementation(WebServiceProcessor.java:349)
at oracle.j2ee.ws.server.provider.ProviderProcessor.doRequestProcessing(ProviderProcessor.java:466)
at oracle.j2ee.ws.server.WebServiceProcessor.processRequest(WebServiceProcessor.java:114)
at oracle.j2ee.ws.server.WebServiceProcessor.doService(WebServiceProcessor.java:96)
at oracle.j2ee.ws.server.WebServiceServlet.doPost(WebServiceServlet.java:177)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:713)
at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:370)
at com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:871)
at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:453)
at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:302)
at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:190)
at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
at java.lang.Thread.run(Thread.java:595)
Caused by: org.collaxa.thirdparty.apache.wsif.WSIFException: exception on JaxRpc invoke: HTTP transport error: javax.xml.soap.SOAPException: java.security.PrivilegedActionException: oracle.j2ee.ws.saaj.ContentTypeException: Not a valid SOAP Content-Type: text/html
at com.collaxa.cube.ws.wsif.providers.oc4j.jaxrpc.WSIFOperation_JaxRpc.invokeOperation(WSIFOperation_JaxRpc.java:1717)
at com.collaxa.cube.ws.wsif.providers.oc4j.jaxrpc.WSIFOperation_JaxRpc.invokeRequestResponseOperation(WSIFOperation_JaxRpc.java:1463)
at com.collaxa.cube.ws.wsif.providers.oc4j.jaxrpc.WSIFOperation_JaxRpc.executeRequestResponseOperation(WSIFOperation_JaxRpc.java:1185)
at oracle.tip.esb.server.common.wsif.WSIFInvoker.executeOperation(WSIFInvoker.java:507)
... 26 more
</Cause></detail></env:Fault></env:Body></env:Envelope>i have re deployed the service in the ESB and now it is working fine. I really did not understand whats the root cause of the error.
Can anyone please throw some light on this?
thanks -
Hi,
Can anybody tell me is it possible to send flat file as an atttachment via soap adapter.
Regards,
DhillHi Doss,
Thank you, my user have given details as
URL Name : https:
xxxxx
and
Headers details as :
Ent-sender: XXXX
Ent-receiver: YYYY
Ent-APRF: ZZZZZ
Ent-filename: client_file_name
Please let me know how we need to specify this in receiver soap communication channel.
Regards,
Dhill -
Issue with SOAP Adapter calling a Web Service
I have built the Scenario outlined in the webblog https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/3408. [original link is broken] [original link is broken] [original link is broken] [original link is broken] [original link is broken] [original link is broken] [original link is broken]
I received the following error message in XI Monitoring:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
- <!-- Aufruf eines Adapters
-->
- <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: System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> System.Data.SqlClient.SqlException: Procedure or Function 'Research_GetCompanyIndustry' expects parameter '@Symbol', which was not supplied. at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) at System.Data.SqlClient.SqlDataReader.ConsumeMetaData() at System.Data.SqlClient.SqlDataReader.get_MetaData() at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) at System.Data.SqlClient.SqlCommand.ExecuteReader() at Invesbot.WebService.StockQuotes.GetQuote(String symbol) in c:Inetpubvhostsinvesbot_comwsApp_CodeStockQuotes.cs:line 81 --- End of inner exception stack trace ---</SAP:AdditionalText>
<SAP:ApplicationFaultMessage namespace="" />
<SAP:Stack />
<SAP:Retry>M</SAP:Retry>
</SAP:Error>
I checked the SOAP Adapter which is green. I also checked the webblogs in the XI Forum concerning similar error messges as it doesn't seem to be a new problem. But I didn't find an answer to my issue.
Anybody any idea what could be the issue in this case.
Thanks in advance.
AlexHi Alex,
in the mentioned weblog a web service "Distance" is used, but your monitor entry say, that you call the web service "StockQuotes". So I think you have put a wrong URL in your receiver SOAP adapter.
The error comes from the web service server. It says that the request message is wrong. The element "Symbol" is missing.
Regards
Stefan
Maybe you are looking for
-
In need of a new Graphics/Video card,..which one?
My computer stopped booting all the way a couple of days ago. Took it to Apple store where they told me I need a new Graphics card. As of now I have: Chipset Model: NVIDIA GeForce 7300 GT Bus: PCIe PCIe Lane Width: x16 VRAM (Total): 256 MB Vendor: NV
-
Still images turn to black backgrounds in the exported movie
I am still using Premiere 2.0. I produced a ca. 25 min project with still images at the beginning and at the end and short videoclips in between. Still images are only ca. 40-50 kB large. When working on it I occasionally got a few problems (e.g. an
-
Bluetooth doesn't work with my car
Hi, I can't pair my Iphone 5 with my car (a Ford Escape). I'm reading about this issue, many people have had the same problem. can you help me, is there a solution?
-
Timed out when I try to search a topic after recent update
enter topic in search box, get timed out 100%
-
Hi, Can u please send me a complete list of Oracle Default accounts that will be created during Database creation for Oracle 9i and 10g Regards, Nagesh