SOAP Receiver Adapter - Read Header data on Synchronous Response
I have a scenario - flat file to SOAP. The web service provider sends a response that contains data in the Header that I need to access. I have tried to use the "Do Not Use SOAP envelope" option on my receiver SOAP adapter, and I have configured my request message type to include the soap envelope elements. However I'm getting the following error from the web service
com.sap.engine.interfaces.messaging.api.exception.MessagingException: SOAP: response message contains an error XIAdapter/HTTP/ADAPTER.HTTP_EXCEPTION - HTTP 415 Cannot process the message because the content type 'application/xml' was not the expected type 'text/xml; charset=utf-8'.
I've read some inputs on this error that say to use the Transform bean to adjust the content to text/xml. However I'm not sure how to do that. If that is the correct resolution to my problem, can someone provide detailed steps on how to add the Transform bean to the adapter module. I have no experience with adding items to the module tab.
If there are other ways to tackle this scenario to get access to the SOAP Header from the SOAP receiver adapter, please share those as well.
Thanks in advance.
Chris
Resolved with the following blog
/people/varadharajan.krishnasamy/blog/2007/01/09/troubleshooting-soap-message--xi
Similar Messages
-
SOAP Receiver adapter : SOAPAction Header appears 2 times using ASMA param
Hi,
I'm using a PI7.1 SOAP receiver channel that uses the ASMA variable THeaderSOAPAction to dynamically add the SOAP action during the mapping. All works fine except that apparently also the 'standard' SOAP action field from the adapter still appears in the request.
( regardless of whether its empty or not )
e.g. the headers from my message look like this
Content-Type: text/xml; charset=utf-8
Content-Length: 863
SOAPACTION: "test"
SOAPACTION: "SetFromASMA"
I'm using conf.put to set the variable in the map. Should I use other method to 'replace' the existing ?
Did somebody experience this as well ? Any suggestions ?
rgds
DirkHi Michael,
Yes, I did see this but :
1) The 'replace' command here is just a java string replace command to manipulate the content before setting the dynamic variable ( nothing to do with replacing an existing dynamic variable in the HTTP headers )
2) I did add first a 'get' to my code after seeing this but that did not work neither ( it even seems that at the time of mappnig execute the static value from the channel is not yet known as the 'get' returns a blank value for the key. ( but then again this is normal because we are only at the mapping step )
It seems that the adapter does not check upfront ig a SOAPACTION was already present or not
( I think this worked in PI 7.0 )
I will submit an oss,
rgds
dirk -
CDATA element deleted in SOAP receiver adapter
Hello Everybody!
I've got a problem with SOAP receiver adapter. I've made a mapping for synchronous HTTP -> XI -> SOAP interface, in which the request mapping is java mapping, which produce a message like this:
<?xml version="1.0" encoding="UTF-8"?> <ns0:SaveISDocument xmlns:ns0="http://pl.optix.pl/aews">
<ns0:xmlDocument><IMAGES><IMAGE FileName="tmp.xml" ClassName="IVX">
<![CDATA[PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMiI/Pgo8SU5WT0lDMDECiAgPElET0MCiAgICAgPEVESV9EQzQwPgogICAgICA8VEFCTkFNPkVESV9EQzQwPC9UQUJOQU0CiAgICAgIDxNQU5EVD4zMDwvTUFORFQCiAgICAgIDxET0NOVU0OTAzMTAyMzA4MzwvRE9DTlVNPgogICAgICA8RE9DUkVMPjQ1QjwvRE9DUkVMPgogICAgICA8U1RBVFVTPjMwPC9TVEFUVVMCiAgICAgIDxESVJFQ1QMTwvRElSRUNUPgogICAgICA8T1VUTU9EPjI8L09VVE1PRD4KICAgICAgPElET0NUWVASU5WT0lDMDE8L0lET0NUWVACiAgICAgIDxDSU1UWVAWjFJTlYwMTwvQ0lNVFlQPgogICAgICA8TUVTVFlQPklOVk9JQzwvOVk9JQzAxPgo=]]>
</IMAGE></IMAGES>
</ns0:xmlDocument></ns0:SaveISDocument>
In CDATA is a Base64 representation of some file.
I hoped at oubound of SOAP adapter sholud be something like this:
<SOAP:Envelope xmlns:SOAP='http://schemas.xmlsoap.org/soap/envelope/'><SOAP:Header/><SOAP:Body><ns0:SaveISDocument xmlns:ns0='http://pl.optix.pl/aews'>
<ns0:SaveISDocument xmlns:ns0="http://pl.optix.pl/aews">
<ns0:xmlDocument><IMAGES><IMAGE FileName="tmp.xml" ClassName="IVX">
<![CDATA[PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMiI/Pgo8SU5WT0lDMDECiAgPElET0MCiAgICAgPEVESV9EQzQwPgogICAgICA8VEFCTkFNPkVESV9EQzQwPC9UQUJOQU0CiAgICAgIDxNQU5EVD4zMDwvTUFORFQCiAgICAgIDxET0NOVU0OTAzMTAyMzA4MzwvRE9DTlVNPgogICAgICA8RE9DUkVMPjQ1QjwvRE9DUkVMPgogICAgICA8U1RBVFVTPjMwPC9TVEFUVVMCiAgICAgIDxESVJFQ1QMTwvRElSRUNUPgogICAgICA8T1VUTU9EPjI8L09VVE1PRD4KICAgICAgPElET0NUWVASU5WT0lDMDE8L0lET0NUWVACiAgICAgIDxDSU1UWVAWjFJTlYwMTwvQ0lNVFlQPgogICAgICA8TUVTVFlQPklOVk9JQzwvOVk9JQzAxPgo=]]>
</IMAGE></IMAGES>
</ns0:xmlDocument></ns0:SaveISDocument>
</SOAP:Body></SOAP:Envelope>
Unfortunatelly there is something like:
<SOAP:Envelope xmlns:SOAP='http://schemas.xmlsoap.org/soap/envelope/'><SOAP:Header/><SOAP:Body><ns0:SaveISDocument xmlns:ns0='http://pl.optix.pl/aews'>
<ns0:SaveISDocument xmlns:ns0="http://pl.optix.pl/aews"><ns0:xmlDocument><IMAGES><IMAGE FileName="tmp.xml" ClassName="IVX">
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMiI/Pgo8SU5WT0lDMDECiAgPElET0MCiAgICAgPEVESV9EQzQwPgogICAgICA8VEFCTkFNPkVESV9EQzQwPC9UQUJOQU0CiAgICAgIDxNQU5EVD4zMDwvTUFORFQCiAgICAgIDxET0NOVU0OTAzMTAyMzA4MzwvRE9DTlVNPgogICAgICA8RE9DUkVMPjQ1QjwvRE9DUkVMPgogICAgICA8U1RBVFVTPjMwPC9TVEFUVVMCiAgICAgIDxESVJFQ1QMTwvRElSRUNUPgogICAgICA8T1VUTU9EPjI8L09VVE1PRD4KICAgICAgPElET0NUWVASU5WT0lDMDE8L0lET0NUWVACiAgICAgIDxDSU1UWVAWjFJTlYwMTwvQ0lNVFlQPgogICAgICA8TUVTVFlQPklOVk9JQzwvOVk9JQzAxPgo=
</IMAGE>
</IMAGES></ns0:xmlDocument></ns0:SaveISDocument>
</SOAP:Body></SOAP:Envelope>
... which is not correct, because CDATA tags are lost!
Anyone has idea, how to enable adapter to process message right?
Best regards,
MikolajHenrique:
As I wrote - the webservice was wrote by 3rd party software supplier - so I wasn't sure if I could change a specification at this point - that was a reason why I needed a CDATA element. A CDATA element was at entry of this webservice and I couldn't send to it my data correctly using XI. That was a problem. Hope You got it now.
Finally I've managed the problem because 3rd party software supplier agreed to change their service and use <CDATA> tag instead of CDATA element.
I solved the problem but my question still remain not answered.
At OSS I was asked to upload latest SP (now I've got 12 at Java Stack).
If this will help I'll close this thread.
Best regards
Mikolaj -
Usage of Module processor in SOAP Receiver Adapter
Hi,
I have scenario where I am calling an external Web Service via XI. Unfortunately I need Java Mapping to generate the complete SOAP Message (there are some special header elements required by the Web Service) and flag 'no soap' in the SOAP Receiver Adapter. This works fine, but I have additional Web Service Calls that have the same Header logic and I don't want to use Java Mapping all the time.
I was wondering if it is possible to use graphical User Mapping for the Business Data that goes to the SAOP Body as a payload and use Java code to generate the SOAP Message (actually the SOAP Wrapper and the Header).
Can I do this in XI using the Module processor in the SOAP Receiver adapter or do I have to use two mappigs, one based on the Graphical mapping and another using Java Mapping? Is it feasible at all in XI?
Thanks in advance.Hi,
You can use Module Processor.
But,
1. If it is a synch call, in when the message is going from the SOAP adapter to the Webservice, you will need to manually Add the SOAP header as you want . ( you will need to create the entire SOAP mesage as the output of the Module ).
2. When the response comes back, the same module will need to remove the SOAP header etc and pass a valid , XML message to the Graphical mapping.
If you have a requirement that some fields of the SOAP header will be needed to be accesed in the Response mapping, then you would need to either add this field to some field in the response payload.
Better option would be to use, Either a Java or a XSL mapping that does all the required stuff for you.
Regards
Bhavesh -
Soap Receiver Adapter Error. Pls advice urgent
Hi All,
While using Soap Receiver Adapter for synchronous communication
*My Soap Request is:*
<?xml version="1.0" encoding="UTF-8" ?>
<ns1:SendMessage xmlns:ns1="urn:MMWebSrvService">
<strFrom>XI</strFrom>
</ns1:SendMessage>
*My Soap Response from server is:*
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!-- Inbound Message
-->
<tns:SendMessageResponse xmlns:tns="urn:MMWebSrvService" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<return xsi:type="xsd:int">-1</return>
<strErrorDescription xsi:type="xsd:string">String reference not set to an instance of a String. Parameter name: s</strErrorDescription>
</tns:SendMessageResponse>
How to resolve the error.
RegardsHenry,
Your xml message is not xsd compliant...see if you can generate a xml message using your wsdl with random values, compare that to your imcoming msg..and thats your issue..
Hope that helps
Regards
Ravi Raman
Reward points if helpful ! -
SOAP receiver adapter for Axis
Hi,
I used SOAP receiver adapter for Axis like below:
Transport Prorocol : HTTP
Message Protocol : Axis
Url: http://<IP>:<Port>/xxx/WebService/services/Head/yyy
Authentication : Basic
User: <user>
Password: <password>
SOAP Version : 1.1
SOAP Action: : <method>
Encapsulation Format : MIME
Payload Extraction : SOAP Body
When i drive PI message it generates error below.
What must i do to solve this problem?
Thanks.
Error message
com.sap.engine.interfaces.messaging.api.exception.MessagingException: javax.ejb.EJBException: Exception in getMethodReady() for stateless bean sap.com/com.sap.aii.axis.appxml|com.sap.aii.adapter.axis.ejb.jarxml|AFAdapterBean; nested exception is: com.sap.engine.services.ejb3.util.pool.PoolException: javax.ejb.EJBException: Exception raised from invocation of public void com.sap.aii.adapter.axis.modules.AFAdapterBean.ejbCreate() throws javax.ejb.CreateException method on bean instance com.sap.aii.adapter.axis.modules.AFAdapterBean@20715646 for bean sap.com/com.sap.aii.axis.appxml|com.sap.aii.adapter.axis.ejb.jarxml|AFAdapterBean; nested exception is: javax.ejb.CreateException: java.lang.NoClassDefFoundError: org/apache/axis/types/URI$MalformedURIException*Url:* http://172.28.6.194:8080/AssetManagerWebService/services/Head/SapTest
When i use Url with *?wsdl* it generates below (it'is very long. I give part of it)
wsdl
<?xml version="1.0" encoding="UTF-8" ?>
- <wsdl:definitions targetNamespace="http://schemas.hp.com/AssetManager/Custom/Head/SapTest/Wsdl" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://schemas.hp.com/AssetManager/Custom/Head/SapTest/Wsdl" xmlns:intf="http://schemas.hp.com/AssetManager/Custom/Head/SapTest/Wsdl" xmlns:tns1="http://schemas.hp.com/AssetManager/Custom/Head/SapTest/Types" xmlns:tns2="http://schemas.hp.com/AssetManager/R51/ACMetaData" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <!--
WSDL created by Apache Axis version: 1.2.1
Built on Jun 14, 2005 (09:15:57 EDT)
-->
- <wsdl:types>
- <schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://schemas.hp.com/AssetManager/Custom/Head/SapTest/Wsdl" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:AdministrationTypes="http://schemas.hp.com/AssetManager/Custom/Head/Administration/Types" xmlns:CableTypes="http://schemas.hp.com/AssetManager/Custom/Head/Cable/Types" xmlns:CatalogTypes="http://schemas.hp.com/AssetManager/Custom/Head/Catalog/Types" xmlns:ChargebackTypes="http://schemas.hp.com/AssetManager/Custom/Head/Chargeback/Types"
<import namespace="http://schemas.hp.com/AssetManager/R51/ACMetaData" />
<import namespace="http://schemas.hp.com/AssetManager/Custom/Head/SapTest/Types" />
- <annotation>
<documentation>Auto-generated schema for AssetCenter web services for Head/SapTest Implementation</documentation>
</annotation>
<import namespace="http://schemas.hp.com/AssetManager/Custom/Head/SAM/Types" schemaLocation="../../schema/Head/SAM/SAMTypes.xsd" />
<import namespace="http://schemas.hp.com/AssetManager/R51/ACMetaData" ......
<wsdl:operation name="retrieveAllBusinessAPIListByName">
<wsdlsoap:operation soapAction="retrieveAllBusinessAPIListByName" />
<wsdl:input name="retrieveAllBusinessAPIListByNameRequest">
<wsdlsoap:body use="literal" />
</wsdl:input>
<wsdl:output name="retrieveAllBusinessAPIListByNameResponse">
<wsdlsoap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="SapTestService">
<wsdl:port binding="impl:SapTestSoapBinding" name="SapTest">
<wsdlsoap:address location="http://172.28.6.194:8080/AssetManagerWebService/services/Head/SapTest" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions> -
SOAP Receiver Adapter / Scenario calling WebServices
Hi Experts,
I am trying to call a web service. Configured a SOAP Receiver adapter. Message to Web Service goes fine but not shown with Checkered flag, but with icon with description "Log Version".
In response message for the request Error Category - MAPPING and Error ID "Cannot Read Payload".
Any ideas to clear this problem. I do have response mapping assigned to Message Interface. Message Interface is Synchronous.
Thanks in advance for any solutions.can you verify that you are getting a response..try re-routing that to tcpgw and check if content is in line with expected response.
Regards
Ravi Raman -
No SOAP Envelope error in SOAP Receiver Adapter
Hello Friends,
Informaiton:-
I have configured one Synchronous scenarion for SAP R/3 to PI 7.1 to Java based web applicaiton.
On the Receiver/Outbound side, i have configured the SOAP Receiver Adapter with the Target URL and SOAP Action.
Outbound and Inbound service interfaces have Request/Response and Fault messages.
Issue:-
While sending the Message, Below error is noticed in ABAP stack SXMB_MONI during the Call Adapter Stage and also in RWB (Channel Monitoring) .
com.sap.engine.interfaces.messaging.api.exception.MessagingException: java.io.IOException: No SOAP Envelope but 1 {}RESPONSES; HTTP 200 OK
I also found that Request message is not reaching to the Java Web server.
I am taking the Same message Payload (found at Call Adapter Stage) and ussing it in XML Altova SPY Web client tool. There it is running scuccessfully and getting the Response message.
please suggest.
Thanks & Regards
JageshHi,
Yesterday i consumed the same WSDL file in Altova XML SPY and there it is working, getting the Response.
Now comparing the SOAP Request message reaching to the Third party Web server (which fall within the same Lane network)
from SAP PI and Altova XML SPY tool. I used TCP Gateway for the below scenarios.
(1)First i sent the SOAP message from PI and observed the RESPONSE message without the SOAP Envelope in TCP Gatway Trace and hence i am getting the No SOAP Envelope Error in PI.
(2)I consumed the same WSDLfile in Altova XML SPY and sent the SOAP message, here i got the Proper SOAP Response message and hence success in this case. (Used the same Data Payload as used in point 1)
(3)Now to identify the issue in the SOAP Request message being sent from PI, i used the same SOAP message sent in step 1 here, that means copy the entire SOAP ENvelope from the TCP gateway Trace and pasted it in Alota Spy and sent, there it is found running (got the response message from Third Party server).
One difference i found in HTTP Protocol statements in SOAP Request message in Point no 1 and Point no 2 above.
HTTP Protocols in Point 1 (Through PI).
POST HTTP/1.0
Accept: /
Host: 172.24.138.142:4544
User-Agent: SAP-Messaging-com.sap.aii.af.sdk.xi/1.0505
CallingType: SA
content-id: <soap-00306EEAC2051ED1839136CEE8564900 sap.com>
Content-Type: text/xml; charset=utf-8
Content-Length: 1195
SOAPACTION: "Action1"
HTTP Protocols in Point 2 (Through Altova).
POST / HTTP/1.1
Content-Type: text/xml
User-Agent: XML Spy
SOAPAction: "Action1"
Host: 172.24.138.142:4544
Content-Length: 1195
Connection: Keep-Alive
Cache-Control: no-cache
Thanks to Mr. Stefan Grube for writting such a nice blog.
Troubleshooting SOAP, HTTP and Mail Adapter Scenarios with TCPGateway
Experts, please suggest me further.
Thansk & Regards
Jagesh -
Issue while passing Target URL dynamically in SOAP Receiver Adapter
Experts,
I am stuck with an issue while passing the Target URL dynamically.
The UDF required for this works just fine. I can see the Target URL in Dynamic Configuration header(The Key is TServerLocation) in SXMB_MONI but the request that I am sending is not reaching the web service.
Some posts have suggested to hard code the Target URL as http://.
Below is the error that I am getting when I hard the Target URL as http://:
<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP:Body>
<SOAP:Fault>
<faultcode>SOAP:Server</faultcode>
<faultstring>Server Error</faultstring>
<detail>
<s:SystemError xmlns:s="http://sap.com/xi/WebService/xi2.0">
<context>XIAdapter</context>
<code>RecoverableException</code>
<text>com.sap.aii.af.ra.ms.api.DeliveryException: XIAdapterFramework:GENERAL:com.sap.aii.af.ra.ms.api.DeliveryException: invalid content type for SOAP: TEXT/HTML
at com.sap.aii.adapter.xi.ms.XIEventHandler.onTransmit(XIEventHandler.java:453)
at com.sap.aii.af.ra.ms.impl.core.queue.CallConsumer.onMessage(CallConsumer.java:131)
at com.sap.aii.af.ra.ms.impl.core.queue.Queue.run(Queue.java:834)
at com.sap.aii.af.ra.ms.runtime.MSWorkWrapper.run(MSWorkWrapper.java:56)
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:100)
at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)</text>
</s:SystemError>
</detail>
</SOAP:Fault>
</SOAP:Body>
</SOAP:Envelope>
When I hard code the Target URL as Test (any dummy value), the error that I get is different. (Detailed error shown below)
<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP:Body>
<SOAP:Fault>
<faultcode>SOAP:Server</faultcode>
<faultstring>Server Error</faultstring>
<detail>
<s:SystemError xmlns:s="http://sap.com/xi/WebService/xi2.0">
<context>XIAdapter</context>
<code>RecoverableException</code>
<text>com.sap.aii.af.ra.ms.api.DeliveryException: XIAdapterFramework:GENERAL:com.sap.aii.af.ra.ms.api.DeliveryException: no scheme
at com.sap.aii.adapter.xi.ms.XIEventHandler.onTransmit(XIEventHandler.java:453)
at com.sap.aii.af.ra.ms.impl.core.queue.CallConsumer.onMessage(CallConsumer.java:131)
at com.sap.aii.af.ra.ms.impl.core.queue.Queue.run(Queue.java:834)
at com.sap.aii.af.ra.ms.runtime.MSWorkWrapper.run(MSWorkWrapper.java:56)
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:100)
at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)</text>
</s:SystemError>
</detail>
</SOAP:Fault>
</SOAP:Body>
</SOAP:Envelope>
I've referred the post [Dynamic URL for SOAP receiver adapter;.
I am on PI 7.0.
Any help in this regard is highly appreciated.
Best Regards,
VijayIssue resolved... by doing this:
DynamicConfigurationKey key2 = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/SOAP", "TAuthKey");
conf.put (key2, "username");
In the advanced tab of the communication channel, set the flag "View Authorization keys", and then added "username" (user to access the dynamic target url) and the password (2 times).
That's it... -
SOAP receiver adapter digest authentization
Hallo,
I have scenario with SOAP receiver adapter configured as follow:
Adapter Type: SOAP
Transport Protocol: HTTP
Message Protocol: SOAP 1.1
Adapter Engine: Integration Serer
Target URL: http://localhost:8099/webservices/test_v1_1_2
Configure User Authentication
User: ****
Pasword:****
but WS need digest HTTP authentication and SOAP adapter send in header Authentication: Basic.
Hou can I change authentication method for SOAP protocol?
ThxHallo,
I solved this problem by using AXIS framework. I hope that this short instruction help to someone.
1. In SOAP receiver CC you have to set up Transport Protocol to HTTP(AXIS) and Message protocol to AXIS
2. Now you can switch Authentication to Digest (NOW adapter will still send Basic!!! Digest Authorization is Supported only by the following handler: com.sap.aii.adapter.axis.ra.transport.http.CommonsHTTPSender)
3. On Module tabs in section Module configuration change type HTTPSender to CommonHTTPSender:
(trp handler.type java:com.sap.aii.adapter.axis.ra.transport.http.CommonsHTTPSender)
4. Save and Activate
Before you start to use AXIS framefork you have to deploy necessary library.
This thread help:
Re: How to install SOAP Axis adapter and where is it available ??
Be carefull, for digest authorization you have to linked Optional library "Jakarta-Commons HttpClient" too.
Good luck.
JK -
SOAP Receiver adapter error. SOAP CALL Failed
Hi ,
I am implementing scenario R/3->RFC adapter->XI->SOAP REceiver adapter->Web Service (Synchronous). I am getting the error.
SOAP: call failed
SOAP: error occured: java.net.ConnectException: Connection timed out
Message log is as below.
Any clue ?
Thanks & Regards,
Mathew
2005-10-31 18:59:58
Success
output
1130810398454
The message was successfully received by the messaging system. Profile: XI URL: http://host:Port/MessagingSystem/receive/AFW/XI
2005-10-31 18:59:58
Success
output
1130810398458
Using connection AFW. Trying to put the message into the request queue.
2005-10-31 18:59:58
Success
output
1130810398458
Message successfully put into the queue.
2005-10-31 18:59:58
Success
output
1130810398459
The message was successfully retrieved from the request queue.
2005-10-31 18:59:58
Success
output
1130810398459
The message status set to DLNG.
2005-10-31 18:59:58
Success
output
1130810398460
Delivering to channel: CC_CALCULATOR
2005-10-31 18:59:58
Success
output
1130810398564
SOAP: request message entering the adapter
2005-10-31 19:03:07
Success
output
1130810587497
SOAP: call failed
2005-10-31 19:03:07
Error
output
1130810587497
SOAP: error occured: java.net.ConnectException: Connection timed out
2005-10-31 19:03:07
Error
output
1130810587498
Exception caught by adapter framework: Connection timed outHi Mathew,
Check if the webservice is availble??? Based on the error below, it looks like the message is timing out at the Adapter Engine level waiting for the connection to make the webservice call...
Prasad -
Soap receiver adapter payload with certficate signature
I have a requirement.. where XI calls external webservice using SOAP.
I have configured SOAP receiver adapter, but the webservice wants the certificate authentication.. From XI we sent the certficate to external webservice and then in the comm channel I did activate the 'certficate' check box. It did not work.
For test purpose now they have deactivated the certficate authentication in their end.. it works if they deactivate. It means there is no issue with request structure.. purely the issue is when I use the certficate.
External webservice sent me the copy of the soap request which works for them.. <b>that has security signature inside the payload.</b> ( I have atteched below).
If anybody has done it have an idea how to do it please let me know.
- <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <soapenv:Header>
- <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsse:BinarySecurityToken xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" wsu:Id="CertId-62149565">MIIGOzCCBaSgAwIBAgIQIKVRaj76KNaG5Dl6P5X7wzANBgkqhkiG9w0BAQUFADCBnjEPMA0GA1UEChMGaHAuY29tMRowGAYDVQQLExFJVCBJbmZyYXN0cnVjdHVyZTELMAkGA1UEBhMCVVMxIDAeBgNVBAoTF0hld2xldHQtUGFja2FyZCBDb21wYW55MUAwPgYDVQQDEzdIZXdsZXR0LVBhY2thcmQgUHJpbWFyeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA3MDMyMzAwMDAwMFoXDTA4MDMyMjIzNTk1OVowUDEgMB4GA1UEChQXSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkxEDAOBgNVBAsUB1NlcnZlcnMxGjAYBgNVBAMTEWl0Zy5lcHJpbWUuaHAuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDVGa1x5j/RJHHkqYzEb9NIQGChffTb1D0LiYAP5arbxz0trCp8ZeG4FCH71jc6x9Ks3gC4YdWgQbOCz64wnpM8NvEVCZBHuxvdnPZpziPWQqDr0yvwSoCXg8mkeJrHql0MSm7TNiyhzCAzlmB9JgmoHrRtArJdXMRpHjdZQK3QIDAQABo4IDxTCCA8EwDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMCBaAwHwYDVR0jBBgwFoAUSlYfvIpRj/SDE8naXHlUyAK6q58wHQYDVR0OBBYEFE99o7D6AITUcqWVmeYzu/2k66VEMIIBKAYDVR0fBIIBHzCCARswggEXoIIBE6CCAQGUWh0dHA6Ly9vbnNpdGVjcmwudmVyaXNpZ24uY29tL0hld2xldHRQYWNrYXJkQ29tcGFueUlUSW5mcmFzdHJ1Y3R1cmUvTGF0ZXN0Q1JMLmNybIaBuWxkYXA6Ly9sZGFwLmhwLmNvbS9DTj1IZXdsZXR0LVBhY2thcmQlMjBQcmltYXJ5JTIwQ2xhc3MlMjAyJTIwQ2VydGlmaWNhdGlvbiUyMEF1dGhvcml0eSxPPUhld2xldHQtUGFja2FyZCUyMENvbXBhbnksQz1VUyxPVT1JVCUyMEluZnJhc3RydWN0dXJlLE89aHAuY29tP2NlcnRpZmljYXRlcmV2b2NhdGlvbmxpc3Q7YmluYXJ5MCoGA1UdJQEB/wQgMB4GCCsGAQUFBwMBBggrBgEFBQcDAgYIKwYBBQUHAwQwggEWBgNVHSAEggENMIAwgAYKKwYBBAELBAMCATCAMCkGCCsGAQUFBwIBFh1odHRwOi8vZGlnaXRhbGJhZGdlLmhwLmNvbS9jcDCABggrBgEFBQcCAjCAMB4WF0hld2xldHQtUGFja2FyZCBDb21wYW55MAMCAQIagZVBdXRob3JpdHkgdG8gYmluZCBIZXdsZXR0LVBhY2thcmQgQ29tcGFueSBkb2VzIG5vdCBjb3JyZXNwb25kIHdpdGggdXNlIG9yIHBvc3Nlc3Npb24gb2YgdGhpcyBjZXJ0aWZpY2F0ZS4gSXNzdWVkIHRvIGZhY2lsaXRhdGUgY29tbXVuaWNhdGlvbiB3aXRoIEhQLgAAAAAAAAAAAAAwge4GCCsGAQUFBwEBBIHhMIHeMCsGCCsGAQUFBzABhh9odHRwOi8vb25zaXRlLW9jc3AudmVyaXNpZ24uY29tMIGuBggrBgEFBQcwAqSBoTCBnjEPMA0GA1UEChMGaHAuY29tMRowGAYDVQQLExFJVCBJbmZyYXN0cnVjdHVyZTELMAkGA1UEBhMCVVMxIDAeBgNVBAoTF0hld2xldHQtUGFja2FyZCBDb21wYW55MUAwPgYDVQQDEzdIZXdsZXR0LVBhY2thcmQgUHJpbWFyeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MA0GCSqGSIb3DQEBBQUAA4GBAMB3vOFZYe26MaZ8mpnoZwhWbLBFV/lxtefZT1uT7mKZiaHjVqwu3tN1eAYAUXtJQHVJTnCnbDm9zFunlvuEzGMt9PwXS61MK6GwPmtjEsevRnGIA7arvpjSJ1/EQlD620I7icM9BNXbElYFfsnZjlWKFTZz3VX1OT2qmJtVWpD</wsse:BinarySecurityToken>
- <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
- <ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
<ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
- <ds:Reference URI="#id-24819136">
- <ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
</ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
<ds:DigestValue>6Mzpm7P8k3f8UuxbBMP4ZTC83Yc=</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>HcqMChOzlHFXTRRAf7kyTSQ5Jd53Yiu7oFLjkh5P3vayo2G4sjFv/qFKHX0E6a5xkBMTIRrW+30t7IdB4X0x35FPO1dTulz37KM1/jpLSGVxnjnWWeFZvseVjJsk5NTPiSE6GAjO7rFW/Vled2djATTmZsIgJCIfhLYVp112Uis=</ds:SignatureValue>
- <ds:KeyInfo Id="KeyId-21369792">
- <wsse:SecurityTokenReference xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="STRId-29015968">
<wsse:Reference URI="#CertId-62149565" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" />
</wsse:SecurityTokenReference>
</ds:KeyInfo>
</ds:Signature>
</wsse:Security>go through this webinar and follow the steps...It will solve your problem..
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/1b657d59-0c01-0010-4fa8-f792fa412823
Regards,
Ravi -
Soap Receiver Adapter - No Response Message
Hi, I've got the following scenario: Idoc - XI - Webservice. I've imported the WSDL from the .NET webservice and used the input and output messages in a syncronous interface. I've setup a SOAP Receiver adapter with the Webservice details. Everything is working fine when I call the webservice and the data is received 100% at the target system, but I am not getting ANY response back on XI.
RECEIVER SOAP ADAPTER Audit LOG:
2008-01-24 16:41:57 Success SOAP: request message entering the adapter with user J2EE_GUEST
2008-01-24 16:41:57 Success MP_LEAVE1
2008-01-24 16:41:57 Success The message was successfully delivered to the application using connection SOAP_http://sap.com/xi/XI/System.
2008-01-24 16:41:57 Success Acknowledgement creation triggered for type: AckNotSupported
2008-01-24 16:41:57 Success SOAP: completed the processing
2008-01-24 16:41:57 Success SOAP: continuing to response message 83638fb0-ca8a-11dc-b36c-00145eed9500
2008-01-24 16:41:57 Success SOAP: sending a delivery ack ...
2008-01-24 16:41:57 Success SOAP: sent a delivery ack
2008-01-24 16:41:57 Success The message status set to DLVD.
2008-01-24 16:41:57 Success Acknowledgement sent successfully for type: AckNotSupported
Has it got anything to do with the "AckNotSupported" type? Is "AckNotSupported" the default setting for the receiver SOAP adapter? If so, where do I change this setting?
When I call the webservice with the exact same input using a standalone tool, I get the response message back 100%. Any help will be appreciated.
Thanks
RudiHey
you are confusing between a response and an acknowledgement.
response and acknowledgement and not one and the same thing.
response is basically used when you send some query to the receiver system and expect a set of value(s) for your query.for e.g sending a query to a Database(JDBC) or SAP system(RFC)
and acknowledgement is just a notification that the message was receiver by the receiver correctly,it does not returns you a set of value(s).
now coming to your question,ALEAUDIT IDOC is generated when an IDOC is posted,since in your case you are not posting and IDOC,instead your are sending it ,i m not sure if ALEAUDIT will be generated or not,one thing that will come to your rescue is that every receiver SOAP adapter expects a HTTP response(irrespective of you explicitly asking it or not).
a HTTP 200 means that messages were posted successfully,and HTTP 500 means application error,get this HTTP response and send it back to the SAP system,most probably you would need to use BPM for this.
Thanx
Aamir
Edited by: Aamir Suhail on Jan 24, 2008 11:26 AM -
Hello there,
I am using a SOAP receiver adapter. The URL contains the format - https://<XYZ.com>/car/soap/Sync?login=username&pass=password
Now, if I configure the channel by using the "Configure User Authentication", the data is not getting posted at target.
But if I provide the user id / pwd in the URL, it gets posted.
I don't want to use the user id / pwd in the URL but at the sametime, the WS team is not ready to change the format of the URL.
Can I use "Query String" to handle that? If yes, how? If no, what options I have?
Thanks for your precious input and time.
AbhiThanks Suraj!
Have you tried this:
url : https://<XYZ.com>/car/soap/Sync
and Configure User Authentication option set
I haven't tried it that way. I am not sure whether that will work, as WS team told me that I am required to put in the whole URL. But thanks for your suggestion, I will give it a try that way.
also try specifying the SOAP action as per your wsdl file
SOAP Action is not Mandatory, so I am not using that.
Thanks,
Abhi -
Soap receiver adapter exception
Hi,
I am using SOAP receiver adapter to access a web service that is hosted on SAP Web AS (in this case it is the integration server Web AS). I use the web services navigator to test the web service and the web service works fine. The name of the web service is 'RemoteCrossReferenceProcessor' and it has one operation 'crossReference'.
But with the soap adapter, I am getting OperationNotFoundException in the logs and my web service is not getting accessed. Here is the server log:
<u><i>An error occurred while processing the message security. Reason: . See trace entry .#3#com.sap.engine.interfaces.webservices.runtime.OperationNotFoundException#Found 0 operation definitions using keys: Key name:'first-body-element-ns' key value:'urn:RemoteCrossReferenceProcessor'; Key name:'SoapRequestWrapper' key value:'crossReference'; #[no trace for com.sap.security.core.server.ws.service.ServerSecurityProtocol (severity above PATH)]#
#1.5#0003BA0FF9EA0022000000840000688D0003F9349A3C2D61#1118429251382#com.sap.aii.af.ra.ms.impl.core.queue.SendConsumer##com.sap.aii.af.ra.ms.impl.core.queue.SendConsumer.onMessage(QueueMessage)######b40aca80d9be11d994360003ba0ff9ea#SAPEngine_System_Thread[impl:5]_47##0#0#Error##Java###Transmitting the message to endpoint using connection failed, due to: .#3#AFW#com.sap.aii.af.ra.ms.api.RecoverableException: NO_BACK_SYSTEM_IN_HOPLIST:#http://sapsand1:8000/sap/xi/engine?type=entry#</i></u>
Here is adapter configuration:
Transport Protocol:HTTP
Message Protocol:SOAP 1.1
Adapter Engine:Integration Engine
Target URL: http://<server_name>>:50000/RemoteCrossReferenceProcessor/Config?style=document
User:
Password:
Default SOAP Action:
I imported the WSDL into the external definition and used the messages from the WSDL for defining my interface mappings.
I am using XI 3.0 SR1 (SP 09).
I am out of ideas as to why the SOAP adapter is not calling my web service. Please help me with your suggestions.
Thanks and Regards.HI Dani,
I was looking for this error and I found this post AXIS SOAP Receiver. This post says about other errors, but sugests many ideas to found the soluction, like:
1- non-deployed all AXIS jars; (but in this case it deployed all)
2- Exists this note for one erro in AXIS: (https://service.sap.com/sap/support/notes/1028961).
3- this document (http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/b092777b-ee47-2a10-17b3-c5f59380957f) that have sets for header parameters. This is interesting becouse one of this parameters is obligatory but isn't filled, can occur error like "null object".
By the way, you can check if have update to AXIS (http://ws.apache.org/axis/), becouse isn't a SAP application and in other systems can have this error.
I hope this helps,
Romerito Silva
Maybe you are looking for
-
I was trying to set up bootcamp but it wouldn't launch, so I was checking the internet and realized that plist.info wasn't there and I think this is my problem
-
Error getting VARCHAR2 in a object using JCA DB Adapter.
I am facing a problem with the JCA db Adapter and i am not able to solve. I have created an Oracle Object like: CREATE OR REPLACE TYPE FACTURAE AS OBJECT ( MODALIDAD VARCHAR2(1),--I TipoEmisorfactura VARCHAR2(2),--EM Then i have created a procedure w
-
Read a text file(database) from a servlet for j2me..?
Anyone know how to read data from a text file as a database using a servlet for j2me..? How to do it..? Thanks in advance.
-
How to configure Share Button in Mountain Lion?
I have just updated my MBP to Mountain Lion. Going to give Safari a bash as I liked the look of some of the new features, for one the Share Button. However, when I try to share something by email it opens Chrome and shares it using a Gmail account I
-
Hello. I'm trying to create an e-mail form for one of my websites. I do NOT want to use the mailto: command. I want to setup the form so that when visitors click Send, the form sends that information to my e-mail address immediately. I also want