Passing SAP Exceptions to a sync SOAP Call
Hi,
I have a scenario in which I have exposed a RFC as a Web service through XI. My sender is SOAP sender who invokes XI which inturn calls the RFC in SAP.
When there is any Error or exception triggered from SAP i.e invalid userid or Insufficient Authorization error I want to capture these errors and send it back to the Sender SOAP system.
I understand that I can use Fault messages but the fault message would be triggered only when my RFC throws an Exception. IF SAP triggers an exception even before the call reaches the RFC then how do I handle these errors??
Pls advice.
Thanks
Ashish
Hi,
I tried your steps but I still cannot map my Error XML Message to a valud Fault Message.
This is my Error XML message being generated from SAP RFC Gateway:
<?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>XIAdapterFramework</SAP:Category>
<SAP:Code area="MESSAGE">GENERAL</SAP:Code>
<SAP:P1 />
<SAP:P2 />
<SAP:P3 />
<SAP:P4 />
<SAP:AdditionalText>com.sap.aii.af.ra.ms.api.DeliveryException: RfcAdapter: receiver channel has static errors: can not instantiate RfcPool caused by: com.sap.aii.af.rfc.RfcAdapterException: error initializing RfcClientPool:com.sap.aii.af.rfc.core.repository.RfcRepositoryException: can not connect to destination system due to: com.sap.mw.jco.JCO$Exception: (103) RFC_ERROR_LOGON_FAILURE: Name or password is incorrect. Please re-enter</SAP:AdditionalText>
<SAP:ApplicationFaultMessage namespace="" />
<SAP:Stack />
<SAP:Retry>M</SAP:Retry>
</SAP:Error>
What am I doing wrong? I have a Mapping defined between my RFC Exception and Fault Message but the above xml message is not compatible with my RFC Exception Message schema therefore I do not see any message going back to the SOAP Sender.
The scenario is that the RFC Receiver comm channel between XI and SAP has an invalid userid. My guess is that even before the call reaches to the RFC , SAP gives this error as XI cannot connect to SAP R/3 with an invalid userid.
I want to capture the above error message and send it back to the SOAP caller. As of now he gets a bad java stack trace which does not mean anything.
Please advice.
Thanks
Ashish
Similar Messages
-
Hi,
I have a scenario in which I am calling a RFC from SOAP client. RFC has been exposed as a web service. The RFC takes a table parameter. The Table param is Not Optional.
Everything works fine except when I try to send an invalid value in the Export Param to the RFC. The SOAP Call Fails and I get a fault Message.
If there is an invalid value in the Export Param the Table Parameter is Null. So is that the reason why the SOAP call fails??
Any help regarding this would be appreciate. Tried searching OSS but could not find anything on this.
Here is the Fault Message:
<SOAP:Envelope xmlns:SOAP='http://schemas.xmlsoap.org/soap/envelope/'>
<SOAP:Body>
<SOAP:Fault>
<faultcode>SOAP:Server</faultcode>
<faultstring>failed to call the adapter engine</faultstring>
<detail>
<s:SystemError xmlns:s='http://sap.com/xi/WebService/xi2.0'>
<context>XIAdapter</context>
<code>DeliveryException</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(Compiled Code))
at com.sap.aii.af.mp.processor.ModuleProcessorLocalLocalObjectImpl0.process(ModuleProcessorLocalLocalObjectImpl0.java(Compiled Code))
at com.sap.aii.af.mp.soap.web.MessageServlet.doPost(MessageServlet.java:513)
at javax.servlet.http.HttpServlet.service(HttpServlet.java(Compiled Code))
at javax.servlet.http.HttpServlet.service(HttpServlet.java(Compiled Code))
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java(Compiled Code))
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java(Compiled Code))
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java(Inlined Compiled Code))
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java(Compiled Code))
at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java(Compiled Code))
at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java(Compiled Code))
at com.sap.engine.services.httpserver.server.Client.handle(Client.java(Inlined Compiled Code))
at com.sap.engine.services.httpserver.server.Processor.request(Processor.java(Compiled Code))
at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java(Compiled Code))
at com.sap.engine.core.cluster.impl6.session.UnorderedChannel$MessageRunner.run(UnorderedChannel.java(Compiled Code))
at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java(Compiled Code))
at java.security.AccessController.doPrivileged1(Native Method)
at java.security.AccessController.doPrivileged(AccessController.java(Compiled Code))
at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java(Compiled Code))
at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java(Compiled Code))
Caused by: com.sap.aii.messaging.srt.BubbleException: failed to call the adapter engine [null "null"]; nested exception caused by: com.sap.aii.af.ra.ms.api.DeliveryException: Application:EXCEPTION_DURING_EXECUTE:
at com.sap.aii.af.mp.soap.ejb.AFCallerApplication.perform(AFCallerApplication.java:122)
at com.sap.aii.messaging.srt.ApplicationBubble.onMessage(ApplicationBubble.java:29)
at com.sap.aii.messaging.srt.ExtensionBubble.onMessage(ExtensionBubble.java:56)
at com.sap.aii.af.mp.soap.ejb.XISOAPAdapterBean.process(XISOAPAdapterBean.java:576)
... 21 more
Caused by: com.sap.aii.af.ra.ms.api.DeliveryException: Application:EXCEPTION_DURING_EXECUTE:
at com.sap.aii.adapter.xi.ms.XIEventHandler.onTransmit(XIEventHandler.java(Compiled Code))
at com.sap.aii.af.ra.ms.impl.core.queue.CallConsumer.onMessage(CallConsumer.java:123)
at com.sap.aii.af.ra.ms.impl.core.queue.Queue.run(Queue.java(Compiled Code))
at com.sap.engine.frame.core.thread.Task.run(Task.java(Compiled Code))
at com.sap.engine.core.thread.impl5.SingleThread.execute(SingleThread.java(Compiled Code))
at com.sap.engine.core.thread.impl5.SingleThread.run(SingleThread.java(Compiled Code))
]]></text>
</s:SystemError>
</detail>
</SOAP:Fault>
</SOAP:Body>
</SOAP:Envelope>
Thanks
AshishHi Ashish,
Were you able to resolve this problem? I am facing a similar situation.
After doing all the steps necessary when I try to send a request to the soap_sender channel I get a message unable to post:error 500
ANy help would be appreciated.
Thanks -
Service call exception java.lang. missing soap end tag..
Hi Experts,
I did the soap to rfc sync interface and Create the java deployble client proxy application in nwds. In Nwds i maintaine the PI parameters message server host,port and exectue the application. it is working fine. but i was deploying the another j2ee engine server messager server host name and port parameters I am getting the error. that is Service call exception java.lang. mising soap end tag.
Could you help me.
Thanks & Regards,
Veerahi,
restarting the java stack would be enough. You can do that at SMICM. Before you should deregister all queues in SMQR so that incoming messages has to wait in the queue. Of coz all synchronous msgs would fail, as well messages going to your Java Inbound Adapters.
note:reward points if solution found helpfull.....
regards
chandrakanth.k -
Unhandled exception in SOAP call
I get this exception when I try to add a provider for the samples for inlineRendering.
I recently installed the August 2002 version of the JPDK.
Any help will be appreciated.
-NP
STACK::: start
8/30/02 10:53 AM default-app: [id=(null), instance=(null)] Unhandled exception in SOAP call
java.lang.NullPointerException
at oracle.portal.utils.xml.v2.XMLUtil.parseStylesheet(Unknown Source)
at oracle.portal.provider.v2.http.DefaultProviderLoader.parseRegistry(Unknown Source)
at oracle.portal.provider.v2.http.DefaultProviderLoader.getProviderDefinition(Unknown Source)
at oracle.portal.provider.v2.http.DefaultProviderLoader.init(Unknown Source)
at oracle.webdb.provider.v2.adapter.soapV1.ProviderAdapter.init(Unknown Source)
at oracle.webdb.provider.v2.utils.soap.SOAPProcessor.locateService(Unknown Source)
at oracle.webdb.provider.v2.utils.soap.SOAPProcessor.processInternal(Unknown Source)
at oracle.webdb.provider.v2.utils.soap.SOAPProcessor.process(Unknown Source)
at oracle.webdb.provider.v2.adapter.SOAPServlet.doSOAPCall(Unknown Source)
at oracle.webdb.provider.v2.adapter.SOAPServlet.service(Unknown Source)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:336)
at com.evermind[Oracle9iAS (9.0.2.0.0) Containers for J2EE].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:684)
at com.evermind[Oracle9iAS (9.0.2.0.0) Containers for J2EE].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:269)
at com.evermind[Oracle9iAS (9.0.2.0.0) Containers for J2EE].server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:735)
at com.evermind[Oracle9iAS (9.0.2.0.0) Containers for J2EE].server.http.HttpRequestHandler.run(HttpRequestHandler.java:243)
at com.evermind[Oracle9iAS (9.0.2.0.0) Containers for J2EE].util.ThreadPoolThread.run(ThreadPoolThread.java:64)
STACK::: endAmjad,
Thank you. I had to remove some comments from the provider.xml that were throwing the parser off. The SOAP error seems fixed.
I am getting this new error:-
STACK:::::
An unexpected error occurred: ORA-29532: Java call terminated by uncaught Java exception: java.net.SocketException: Invalid argument
Invalid argument (WWC-43000)
An unexpected error occurred: java.net.SocketException: Invalid argument
Invalid argument
at java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:305)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:125)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:112)
at java.net.Socket.<init>(Socket.java:269)
at java.net.Socket.<init>(Socket.java:125)
at HTTPClient.HTTPConnection$EstablishConnection.run(HTTPConnection.java)
(WWC-43000)
STACK::::
Any input on this one?
Rgds,
-NP -
Hi, I am trying to implement custom hold order / send to in sharepoint 2010 to send files in to holds / record center.
I am at the last step where I am trying submit the metadata using soap call- submit file
[SoapDocumentMethod("http://schemas.microsoft.com/sharepoint/soap/recordsrepository/SubmitFile", RequestNamespace = "http://schemas.microsoft.com/sharepoint/soap/recordsrepository/", ResponseNamespace = "http://schemas.microsoft.com/sharepoint/soap/recordsrepository/", Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public string SubmitFile([XmlElement(DataType = "base64Binary")] byte[] fileToSubmit, [XmlArrayItem(IsNullable = false)] Microsoft.SharePoint.RecordsRepositoryProperty[] properties, string recordRouting, string sourceUrl, string userName)
return (string)base.Invoke("SubmitFile", new object[] { fileToSubmit, properties, recordRouting, sourceUrl, userName })[0];
I am getting an error "The request failed with http status 401: Unauthorized".
Actual file was transferred successfully but while transferring the properties (metadata) I am getting this exception.
ganeshHi ganesh,
Please try to disable the loop back check, compare the result:
In Registry Editor, locate and then click the following registry key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
Right-click Lsa, point to New, and then click DWORD Value.
Type DisableLoopbackCheck, and then press ENTER.
Right-click DisableLoopbackCheck, and then click Modify.
In the Value data box, type 1, and then click OK.
Quit Registry Editor, and then restart your computer.
In addition, please check if these links are useful:
http://www.sharepointpills.com/2011/10/send-sharepoint-2010-document-to.html
http://www.codeproject.com/Articles/497729/UploadingplusDocumentsplusProgramaticallyplustoplu
I hope this helps.
Thanks,
Wendy
Forum Support
Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Subscriber Support, contact
[email protected]
Wendy Li
TechNet Community Support -
ApplicationResponseFault with namespace longer than 60 in sync soap message
Hi,
we are on pi 7.0 and our scenario is a async-sync bpm. In the sync soap message, the webservice raise an application error. In the response soap message we get the following detail tag:
<detail><ApplicationResponseFault xmlns="http://schemas.datacontract.org/2004/07/BizLayerNT.ServiceLayer.v10"><DocumentResponse xmlns="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"><Response><ResponseCode xmlns="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2">BusinessReject</ResponseCode></Response></DocumentResponse></ApplicationResponseFault></detail>
In sxi_monitor this application error isn't caught and a system error is generated.
In the system error message we get:
<SAP:Category>XIServer</SAP:Category>
<SAP:Code area="INTERNAL">HTTP_RESP_STATUS_CODE_NOT_OK</SAP:Code>
<SAP:P1>500</SAP:P1>
<SAP:P2>Internal Server Error</SAP:P2>
<SAP:P3 />
<SAP:P4 />
<SAP:AdditionalText>java.lang.NullPointerException at java.util.Hashtable.put(Hashtable.java:393) at com.sap.aii.messaging.mo.MessageContext.setAttribute(MessageContext.java:140) at com.sap.aii.adapter.xi.ms.XIMessage.updateHeaders(XIMessage.java:4271) at com.sap.aii.adapter.xi.ms.XIMessage.getTransportHeaders(XIMessage.java:572) at com.sap.aii.af.ra.ms.impl.ServerConnectionImpl.request(ServerConnectionImpl.java:212) at
In defaulttrace.trc we get ","<sap:ApplicationFaultMessageNamespace> is longer than 60 characters: http://schemas.datacontract.org/2004/07/BizLayerNT.ServiceLayer.v10",":
"09/04/2009","10:22:43:421","unable to generate the header map","Error","","com.sap.aii.adapter.xi.ms.XIMessage.getHeaderMap()","sap.com/com.sap.aii.af.app","SAPEngine_Application_Thread[impl:3]_14","34103150:F:\usr\sap\TPI\DVEBMGS03\j2ee\cluster\server0\log\defaultTrace.trc","001A64317EEE005E00005F2300000A6C000472BC344957CC","com.sap.aii.adapter.xi.ms.XIMessage","","","n/a","b82f88e0992b11dea4d8001a64317eee","","0","0","","0","","","0","com.sap.aii.adapter.xi.ms.XIMessage","SAPEngine_Application_Thread[impl:3]_14","","J2EE_GUEST",
"09/04/2009","10:22:43:421","<sap:ApplicationFaultMessageNamespace> is longer than 60 characters: http://schemas.datacontract.org/2004/07/BizLayerNT.ServiceLayer.v10","Error","","com.sap.aii.messaging.mo.xmb.XMBErrorHeader.marshal(XMLWriter)","sap.com/com.sap.aii.af.app","SAPEngine_Application_Thread[impl:3]_14","34103150:F:\usr\sap\TPI\DVEBMGS03\j2ee\cluster\server0\log\defaultTrace.trc","001A64317EEE005E00005F2200000A6C000472BC34495771","com.sap.aii.messaging.mo.xmb.XMBErrorHeader","http://schemas.datacontract.org/2004/07/BizLayerNT.ServiceLayer.v10,","http://schemas.datacontract.org/2004/07/BizLayerNT.ServiceLayer.v10,","n/a","b82f88e0992b11dea4d8001a64317eee","","0","0","","1","","","0","com.sap.aii.messaging.mo.xmb.XMBErrorHeader","SAPEngine_Application_Thread[impl:3]_14","","J2EE_GUEST",
"09/04/2009","10:22:43:421","Could not process message from 192.168.130.21 due to java.lang.NullPointerException.","Error","","com.sap.aii.af.ra.ms.impl.core.transport.http.MessagingServlet.doPost(HttpServletRequest, HttpServletResponse)","sap.com/com.sap.aii.af.ms.app","SAPEngine_Application_Thread[impl:3]_55","34103150:F:\usr\sap\TPI\DVEBMGS03\j2ee\cluster\server0\log\defaultTrace.trc","001A64317EEE0083000072F700000A6C000472BC344955F3","com.sap.aii.af.ra.ms.impl.core.transport.http.MessagingServlet","192.168.130.21,java.lang.NullPointerException,","192.168.130.21,java.lang.NullPointerException,","SAPDES_TPI_34103150","1d72b100992c11dec67f001a64317eee","PIISUSER","0","0","","1","","","15337","com.sap.aii.af.ra.ms.impl.core.transport.http.MessagingServlet","SAPEngine_Application_Thread[impl:3]_55","","PIISUSER",
"09/04/2009","10:22:43:421","The SAP XI Adapter Framework Messaging Service caught an exception during rendering an XML Message. Details can be found in the trace file for Location com.sap.aii.messaging.mo.xmb. Action: Please contact SAP Support and provide the trace file.","Error","/Applications/ExchangeInfrastructure/AdapterFramework/SAPLibraries/SAPXDK","com.sap.aii.messaging.mo.xmb.XMBErrorHeader.marshal(XMLWriter)","sap.com/com.sap.aii.af.app","SAPEngine_Application_Thread[impl:3]_14","34103150:F:\usr\sap\TPI\DVEBMGS03\j2ee\cluster\server0\log\defaultTrace.trc","001A64317EEE005E00005F2000000A6C000472BC3449559F","com.sap.aii.messaging.mo.xmb.XMBErrorHeader","","","n/a","b82f88e0992b11dea4d8001a64317eee","","0","0","","0","/Applications/ExchangeInfrastructure/AdapterFramework/SAPLibraries/SAPXDK","","0","com.sap.aii.messaging.mo.xmb.XMBErrorHeader","SAPEngine_Application_Thread[impl:3]_14","","J2EE_GUEST",
So I think the problem is due to the namespace length. I'm right?
We can't change the consumed webservice to reduce namespace length and our customer ask us to solve it in PI. Is there any way to change the namespace before to be treated and get a correct application error?
Thanks in advance,
Marc
Edited by: Marc Mauri on Sep 5, 2009 12:06 PMHi Neetesh,
we developed our own adapter module. We use it in our receiver soap adapter, module tab, before and after the standard module sap.com/com.sap.aii.af.soapadapter/XISOAPAdapterBean.
In this audit log secuence you can see that the problem seems not to be solved, because the error is triggered when processing response message inside adapter module sap.com/com.sap.aii.af.soapadapter/XISOAPAdapterBean, so our module is not called and the problem remains.
2009-09-22 19:06:41 Success Message successfully received by messaging system. Profile: XI URL: http://sapdes:50300/MessagingSystem/receive/AFW/XI Credential (User): PIISUSER
2009-09-22 19:06:41 Success The message status set to DLNG.
2009-09-22 19:06:41 Success Delivering to channel: CC_WS_DOS
2009-09-22 19:06:41 Success MP: Entering module processor
2009-09-22 19:06:41 Success MP: Processing local module *localejbs/AM_OWN_MODULE*
2009-09-22 19:06:41 Success GetHostName: Module called
2009-09-22 19:06:41 Warning Inside my own adapter Module <-- THIS IS A TRACE MESSAGE CODED INSIDE OUR MODULE
2009-09-22 19:06:41 Success MP: Processing local module localejbs/sap.com/com.sap.aii.af.soapadapter/XISOAPAdapterBean
2009-09-22 19:06:41 Success SOAP: request message entering the adapter with user J2EE_GUEST
2009-09-22 19:06:41 Success SOAP: Web Services Security processing...
2009-09-22 19:06:41 Success SOAP: apply Web Services Security...
2009-09-22 19:06:41 Success SOAP: Web Services Security applied.
2009-09-22 19:06:42 Success SOAP: completed the processing
2009-09-22 19:06:42 Success SOAP: continuing to response message 4d2c88e0-a79a-11de-9ffa-001a64317eee
2009-09-22 19:06:42 Error SOAP: response message contains an error Application/UNKNOWN/APPLICATION_ERROR - application fault <----
THIS ERROR IS DUE TO NAMESPACE LENGHT (WE CAN SEE THIS ERROR IN DEFAULT_TRACE.LOG)
2009-09-22 19:06:42 Success MP: Processing local module localejbs/AM_OWN_MODULE
2009-09-22 19:06:42 Success MP: Leaving module processor
2009-09-22 19:06:43 Success The message was successfully delivered to the application using connection SOAP_http://sap.com/xi/XI/System. 2009-09-22 19:06:43 Success The message status set to DLVD.
Any suggestion?
Thanks in advance, -
Hi folks,
my friday crusher:
We have a sync RFC-PI-SOAP scenario.
All is working fine in Dev system.
After moving into Test following error is displayed as the SOAP response message:
- <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
<SAP:Category>XIAdapterFramework</SAP:Category>
<SAP:Code area="MESSAGE">GENERAL</SAP:Code>
<SAP:P1 />
<SAP:P2 />
<SAP:P3 />
<SAP:P4 />
<SAP:AdditionalText>com.sap.engine.interfaces.messaging.api.exception.MessagingException: java.io.EOFException: Connection closed by remote host.</SAP:AdditionalText>
<SAP:Stack />
<SAP:Retry>M</SAP:Retry>
</SAP:Error>
Also Channel Monitoring says:
Message-Verarbeitung fehlgeschlagen. Grund: com.sap.engine.interfaces.messaging.api.exception.MessagingException: java.io.EOFException: Connection closed by remote host.
Couldn´t find any hints in SDN and the web to this issue.
Does anyone of you has made experiences with that problem?
Maybe it´s a system parameter for time out SOAP connections....?
Many thanks for your help
-and-
have a great weekend!
Cheers
AndréVery strange!
But I have the solution:
I have looked into channel monitoring / RWB again.
There I saw, this PI is using two clusters on two application servers.
Everytime the SOAP call is executed through the frist cluster, all was fine.
But no SOAP call was successfully executed by the second cluster.
Fortuity? No!
The second cluster node / app server wasn´t registered for internet access in the used proxy server.
So it wasn´t an PI issue.
Now, all is fine & I´m happy!
Thanks @all for helping!
Cheers,
André -
** SOAP to SOAP call - HTTP 404 not found - invalid content type
Hi friends,
We have one scenario SOAP to SOAP call. It is synchronous interface. We are calling the WSDL.
For some of the messages (not all), we are getting the error in SXMB_MONI
com.sap.engine.interfaces.messaging.api.exception.MessagingException: java.io.IOException: invalid content type for SOAP: TEXT/HTML; HTTP 404 Not Found
In the sender & receiver SOAP communication channel also, same error : SOAP: call failed: java.io.IOException: invalid content type for SOAP: TEXT/HTML; HTTP 404 Not Found
Friends, this error is not coming for all messages. For some of the messages it is coming. For example,
10:50 - Message Processed Successfully
10:54 - Message Processed Successfully
10:59 - Error
11:05 - Message Processed Successfully
By looking threads and blogs, I implemented MessagesTransformBean in the receiver CC and added the parameter Transform.ContentType as 'text/xml;charset=utf-8'.
After implementing this also, error is coming for some of the messages.
Can you kindly clarify friends, what could be the problem?
Kind regards,
Jegathees P.I'm in agreement with Stefan...
If the problem is intermittent then the system is overloaded at certain times. You would probably need to do some JVM analysis to see the resource usage & look at increasing the memory.
Regards, Trevor -
Mapping SOAP Fault during synchronous SOAP call
We are building a mediated service scenario where PI is brokering a synchronous SOAP call, without changing any of the information being sent or received (the mappings use the same source and target data types with no transformations). When the service is successfully executed everything works as expected, but when the target service returns a SOAP fault, PI appears to be wrapping the fault in a separate fault before returning it to the client. Why is this happening? Is there a way to simply return the SOAP fault to the client without adding the additional wrapper?
Here is the fault received from the target service when called directly:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Header/>
<soapenv:Body>
<soapenv:Fault>
<faultcode>Missing_Required_Data</faultcode>
<faultstring>**Required data is invalid : Dealer Country**</faultstring>
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>
Here is the fault received from the mediated PI service call:
<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>ADAPTER.JAVA_EXCEPTION</code>
<text>com.sap.engine.interfaces.messaging.api.exception.MessagingException: com.sap.engine.interfaces.messaging.api.exception.MessagingException: XIAdapterFramework:GENERAL:com.sap.engine.interfaces.messaging.api.exception.MessagingException: SOAP: response message contains an error XIAdapter/PARSING/ADAPTER.SOAP_EXCEPTION - soap fault: **Required data is invalid : Dealer Country**
at com.sap.aii.adapter.soap.ejb.XISOAPAdapterBean.process(XISOAPAdapterBean.java:1161)
at sun.reflect.GeneratedMethodAccessor948.invoke(Unknown Source)
</s:SystemError>
</detail>
</SOAP:Fault>
</SOAP:Body>
</SOAP:Envelope>
Why aren't they the same?are diferents coz the first is a fault message and the second is a exception message.
to send back the fault message define a fault message for both structure and map them in a new message mapping. later in the operation mapping or interface mapping (depends of the pi version) under fault message or fault mappinng (i dont remember) tab assisg the fault message mapping.
thats all you need. -
Hi All,
We are facing the below error in receiver SOAP channel.. We are on PI7.1 ..Are there any installation checks that needs to be looked at as we are facing lot of inconsistencies with SOAP...
What may be the cause of the below error...Also please let me know what all checks are needed as there are inconsistencies with SOAP adapter...
SOAP: call failed: java.net.SocketException: Connection reset
Delivering the message to the application using connection SOAP_http://sap.com/xi/XI/System failed, due to: com.sap.engine.interfaces.messaging.api.exception.MessagingException: java.net.SocketException: Connection reset.Hi Amit,
Having the same issue :
SOAP: call failed: java.net.SocketException: Connection reset
has your issue been solved and how ?
Regards, -
External SOAP-Call ends with general error "PART UNKNOWN (NULL)"
Hi,
we generated a consumer proxy using the following WSDL file:
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="https://soap.global-esign.com/axis/services/GlobalEsignSoapExt" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="https://soap.global-esign.com/axis/services/GlobalEsignSoapExt" xmlns:intf="https://soap.global-esign.com/axis/services/GlobalEsignSoapExt" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns1="https://soap.global-esign.com/xsd" 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.3
Built on Oct 05, 2005 (05:23:37 EDT)-->
<wsdl:message name="CreatePdfSignatureRequest">
<wsdl:part name="in0" type="xsd:string"/>
<wsdl:part name="in1" type="xsd:string"/>
<wsdl:part name="in2" type="xsd:base64Binary"/>
<wsdl:part name="in3" type="xsd:string"/>
<wsdl:part name="in4" type="xsd:boolean"/>
<wsdl:part name="in5" type="xsd:string"/>
<wsdl:part name="in6" type="xsd:string"/>
</wsdl:message>
<wsdl:message name="CreatePdfSignatureResponse">
<wsdl:part name="CreatePdfSignatureReturn" type="xsd:base64Binary"/>
</wsdl:message>
<wsdl:portType name="GlobalEsignSoapExt">
<wsdl:operation name="CreatePdfSignature" parameterOrder="in0 in1 in2 in3 in4 in5 in6">
<wsdl:input message="impl:CreatePdfSignatureRequest" name="CreatePdfSignatureRequest"/>
<wsdl:output message="impl:CreatePdfSignatureResponse" name="CreatePdfSignatureResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="GlobalEsignSoapExtSoapBinding" type="impl:GlobalEsignSoapExt">
<wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="CreatePdfSignature">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="CreatePdfSignatureRequest">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://GlobalEsign.tsi.de" use="encoded"/>
</wsdl:input>
<wsdl:output name="CreatePdfSignatureResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="https://soap.global-esign.com/axis/services/GlobalEsignSoapExt" use="encoded"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="GlobalEsignSoapExtService">
<wsdl:port binding="impl:GlobalEsignSoapExtSoapBinding" name="GlobalEsignSoapExt">
<wsdlsoap:address location="https://soap.global-esign.com/axis/services/GlobalEsignSoapExt"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
The coding of the test program is:
*& Report Z_SOAP_PDF_SIGNATUR
REPORT z_soap_pdf_signatur.
*------ Type pools
type-pools: sai.
*------ Class definitions and references
DATA: lo_zpdf_sign TYPE REF TO zpdfco_global_esign_soap_ext,
lo_system_fault TYPE REF TO cx_ai_system_fault,
lo_appl_fault type ref to cx_ai_application_fault.
*------ data
DATA: output TYPE zpdfcreate_pdf_signature_respo,
input TYPE zpdfcreate_pdf_signature.
DATA: wa_controller TYPE prxctrl.
DATA: pdfout(255) TYPE c VALUE
'C:/TEMP/pp-20080229-93ES-40010-0013439840-1690000005.pdf',
pdfsign(255) TYPE c VALUE
'C:/TEMP/pp-20080229-93ES-40010-0013439840-1690000005-sign.pdf',
wa_objcont TYPE soli,
objcont LIKE soli OCCURS 0.
DATA: xlines TYPE string,
buffer TYPE xstring,
x_msg TYPE c LENGTH 100.
TRY.
CREATE OBJECT lo_zpdf_sign
EXPORTING
logical_port_name = 't_systems'.
CATCH cx_ai_system_fault .
ENDTRY.
* read unsigned pdf
OPEN DATASET pdfout FOR INPUT MESSAGE x_msg
IN BINARY MODE.
TRY.
READ DATASET pdfout INTO xlines.
CATCH cx_sy_file_open_mode.
EXIT.
ENDTRY.
CLOSE DATASET pdfout.
* convert string
CALL FUNCTION 'SCMS_STRING_TO_XSTRING'
EXPORTING
text = xlines
* MIMETYPE = ' '
* encoding = 'UTF-8'
IMPORTING
buffer = buffer
EXCEPTIONS
failed = 1
OTHERS = 2 .
TRY.
input-in0 = 'user'.
input-in1 = 'password'.
input-in2 = buffer.
input-in3 = 'affilinet'.
CALL METHOD lo_zpdf_sign->create_pdf_signature
EXPORTING
input = input
IMPORTING
output = output.
CATCH cx_ai_system_fault INTO lo_system_fault.
DATA: lv_message TYPE string.
DATA: lv_message_long TYPE string.
CALL METHOD lo_system_fault->if_message~get_text
RECEIVING
result = lv_message.
CALL METHOD lo_system_fault->if_message~get_longtext
RECEIVING
result = lv_message_long.
WRITE lv_message.
WRITE lv_message_long.
CATCH cx_ai_application_fault into lo_appl_fault.
DATA: lv_messaap TYPE string.
DATA: lv_messaap_long TYPE string.
CALL METHOD lo_appl_fault->if_message~get_text
RECEIVING
result = lv_messaap.
CALL METHOD lo_appl_fault->if_message~get_longtext
RECEIVING
result = lv_messaap_long.
WRITE lv_messaap.
WRITE lv_messaap_long.
ENDTRY.
LOOP AT output-controller INTO wa_controller.
WRITE:/ wa_controller-field.
WRITE:/ wa_controller-value.
ENDLOOP.
* store signed pdf
OPEN DATASET pdfsign FOR output MESSAGE x_msg
IN BINARY MODE.
transfer output-CREATE_PDF_SIGNATURE_RETURN
to pdfsign.
Processing the soap call in the test programm ends in a system exception (cx_ai_system_fault) with the message:
"General Error Es ist ein Fehler bei der Proxy-Verarbeitung aufgetreten ( PART UNKNOWN (NULL) )"
It seems as if there is no response or a response in a wrong format given by the webservice.
We had a look at the ICF-Trace.
The request seems to be a proper soap-call.
But the response is not in XML-format and therefore could not be completely displayed.
it says:
Ungültig auf der obersten Ebene im Dokument. Fehler beim Bearbeiten der Ressource 'file:///C:/Dokumente und Einstellungen/S...
HTTP/1.1 200 OK
^
Could anybody help ?
Kind regards
HeinzHello Mathias,
in our case the problem was, that the WDSL used parameters, which were not correcty interpreted by the SAP-Routine that creates the proxy.
We changed the WDSL using only paramters covert by SAP.
Here ist the WSDL that worked fine:
<?xml version="1.0" encoding="utf-8" ?>
- <wsdl:definitions targetNamespace="https://soap.global-esign.com/axis/services/GlobalEsignSoapExt" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="https://soap.global-esign.com/axis/services/GlobalEsignSoapExt" xmlns:tsi="http://GlobalEsign.tsi.de">
- <wsdl:documentation>
<sidl:sidl xmlns:sidl="http://www.sap.com/2007/03/sidl" />
</wsdl:documentation>
- <wsdl:types>
- <xsd:schema elementFormDefault="qualified" targetNamespace="https://soap.global-esign.com/axis/services/GlobalEsignSoapExt" xmlns="https://soap.global-esign.com/axis/services/GlobalEsignSoapExt">
- <xsd:complexType name="CreatePdfSignature">
- <xsd:sequence>
<xsd:element name="in0" type="xsd:string" />
<xsd:element name="in1" type="xsd:string" />
<xsd:element name="in2" type="xsd:base64Binary" />
<xsd:element name="in3" type="xsd:string" />
<xsd:element name="in4" type="xsd:boolean" />
<xsd:element name="in5" type="xsd:string" />
<xsd:element name="in6" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
- <xsd:schema targetNamespace="http://GlobalEsign.tsi.de" xmlns="http://GlobalEsign.tsi.de">
<xsd:import namespace="https://soap.global-esign.com/axis/services/GlobalEsignSoapExt" />
<xsd:element name="CreatePdfSignature" type="tns:CreatePdfSignature" />
- <xsd:element name="CreatePdfSignatureResponse">
- <xsd:complexType>
- <xsd:sequence>
<xsd:element name="CreatePdfSignatureReturn" type="xsd:base64Binary" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
</wsdl:types>
- <wsdl:message name="CreatePdfSignature">
<wsdl:part name="CreatePdfSignature" element="tsi:CreatePdfSignature" />
</wsdl:message>
- <wsdl:message name="CreatePdfSignatureResponse">
<wsdl:part name="CreatePdfSignatureResponse" element="tsi:CreatePdfSignatureResponse" />
</wsdl:message>
- <wsdl:portType name="GlobalEsignSoapExt">
- <wsdl:operation name="CreatePdfSignature">
<wsdl:input message="tns:CreatePdfSignature" />
<wsdl:output message="tns:CreatePdfSignatureResponse" />
</wsdl:operation>
</wsdl:portType>
</wsdl:definitions>
<wsdl:part name="in1" type="xsd:string"/> was changed to <xsd:element name="in0" type="xsd:string" /> .
Please let me know, whether you succeeded.
Kind regards
Heinz Schäfe -
SOAP: call failed: java.io.EOFException
Hi all,
I have build a proxy to soap scenario that generates errors during runtime. The scenario
consists of an ABAP program consuming a webservice through PI. The communication
channel shows the following errorlog:
- Message processing started
- request entering
- SOAP: call failed: java.io.EOFException: Connection closed by remote host.
- Message processing failed. Cause: com.sap.engine.interfaces.messaging.api.exception.
MessagingException: java.io.EOFException: Connection closed by remote host.
Does anyone know the cause of this error?
Thanks in advance.
Regards,
IvoHi Ravi,
although I was able to reach the URL through a webbrowser, this problem was indeed caused by unavailability of the webservice. I just tried the connection without making any changes in PI and everything is working fine now.
Case closed.
Regards,
Ivo -
Hi ,
I am using a SOAP Receiver adapter to send a message. I am getting the below error when i try to call the soap adapter.
SOAP: call failed: com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: Invalid byte 1 of 1-byte UTF-8 sequence.
SOAP: error occured: com.sap.engine.interfaces.messaging.api.exception.MessagingException: com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: Invalid byte 1 of 1-byte UTF-8 sequence.Hi Sneha,
Please check Target URL, enter the complete address (URL) of the Web service provider that you want to send the message to. I searched and searched this error and all i could is that there could be a problem with wsdl.
Regards
joel -
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 -
Hi
I've a requirement for a XI Inbound Order that I need to check for each MATNR on the Order Line it's associated Division (SPART). Once I know the Division I'll then split up the Order per Division.
Can I from my BPM collect the message, call a RFC via Send Sync Step to return the Divisions and then continue with my transformation ?
I was looking for an example of how to call an RFC from a BPM. NOT using Sync<>Async bridge.
Does anybody have a link to a blog etc for that.?Hi,
You can either use RFC lookup in mapping or use Sync RFC call in the BPM.
Refer the Blog RFC Scenario using BPM --Starter Kit By Arpith Seth for Sync RFC call in BPM.
Refer this document [Mapping Lookups: Remote Function Calls API|https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/a03e7b02-eea4-2910-089f-8214c6d1b439] for making RFC lokup from mapping.
Thanks
SaNv...
Maybe you are looking for
-
My safari won't open since I installed OSX Yosemite
My Safari hasn't opened and functioned properly since I installed OS X Yosemite 10.10.1 on my Mac Book Pro. Processor 2.66 GHz Intel Core 2 Duo, Memory 4 GB 1067 MHz DDR3. Is it possible to reinstall Safari?
-
Show a new row when an event is triggered
Hi I have a requirement where in i have to create a new row when clicked on a add row button. In order to complete the requirement i have created a rowLayout region in the page and in the Controller i am adding the childs to the region in the PR. Chi
-
Hi Experts Do you Know how can I write I DOM XML the header of file I Mean <?xml version="1.0" encoding="iso-8859-8"?> Regards Yossi
-
How to down load pictures to card
My phone storage is almost full and nothing is downloading to my card which has 23 gb free..not sure how to do this...Will go to store soon if I can't get advice quickly...thought maybe someone had advice now please..thanks
-
What version will work on my kindle fire?
Will anyone tell me what version will work for my kindle fire?