Error response SOAP
Dear,
I've a XI to SOAP sync scenario. My problem ocurred when i send xml to web service.
In SXI_MONITOR I can see that message arrives to the web service but in the response returns a error (without payload).
The mapping logic is very simple. In outbound process only assign a constant to consume the web service and in the response I using XSL mapping:
This is de web service request:
And this the response:
And ack:
I have checked the web service with SOAPUI and it returns response correctly.
I have seen similar discussions but i don't see nothing clear:
SYNC SOAP scenario: Can't parse the document; HTTP 200 OK
Can't parse the document; HTTP 200 OK
Any idea?
Many thanks,
Regards.
Thanks to all,
My communication channel have a simple configuration:
The Operation Mapping that I configured:
Request:
Response:
On the other hand, the External deffiniton that I have in PI is:
Request:
Response:
Finally, this is de logic of request mapping (Trivial, only assign a constant to execute):
I haven't made any change and scenario was ok since 2012
Attacth an example response:
<?xml version="1.0" standalone="yes"?>
<NewDataSet>
<Table>
<Id_Activo> 000000</Id_Activo>
<HostName>XX</HostName>
<Id_Responsable>XX</Id_Responsable>
<Id_Usuario>XX</Id_Usuario>
<tipo>00</tipo>
<Sla>0</Sla>
<direccion>C/ XX 00 - Oficina</direccion>
<Localidad>XXXXXXX</Localidad>
<Provincia>00</Provincia>
<Zona>00</Zona>
<pais>ES</pais>
<SO>Microsoft Windows Server 2008 R2 Enterprise </SO>
<SO_Version>6.1.7601</SO_Version>
<Procesador>Intel(R) Xeon(R) CPU E5-2630 0 @ 2.30GHz</Procesador>
<Memoria>16349 Mb</Memoria>
<Marca_Modelo>HP ProLiant ML350p Gen8</Marca_Modelo>
<VelProcesador>2300</VelProcesador>
<FILL1>01</FILL1>
<FILL2 />
<FILL3 />
</Table>
</NewDataSet>
Regards.
Similar Messages
-
Error in SOAP Adapter Response
I am getting the following Error in SOAP Response
... but when i tried the with ALTOVA XML SPY its working fine..
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
- <!-- Inbound 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>XIAdapter</SAP:Category>
<SAP:Code area="PARSING">ADAPTER.SOAP_EXCEPTION</SAP:Code>
<SAP:P1 />
<SAP:P2 />
<SAP:P3 />
<SAP:P4 />
<SAP:AdditionalText>soap fault: Registration Method error</SAP:AdditionalText>
<SAP:ApplicationFaultMessage namespace="" />
<SAP:Stack />
<SAP:Retry>M</SAP:Retry>hi,
check the XML that you send to the WS
if the server returned this soap fault it might mean that XML was not correct .
also take a look at the default.trc log file from visual administrator-> server -> services -> log viewer -> locations -> com -> aii -> bc -> soap
regards
kummari
Edited by: kummari on Jul 29, 2008 5:40 AM -
Hello All,
We have scenario proxy->pi->webservice. In older versions of PI system they used wsrm adapter at receiver side and it's working fine.
Receiver interface is asynchronous. So no response structute is present and receiver service is business component(since receiver is a third party).
During migration, we have replaced the receiver adapter with SOAP adapter and used message protocol as SOAP 1.1 but the message is failing and in communication channel it is showing error "Response message contains an errorXIAdapter/HTTP/ADAPTER.HTTP_EXCEPTION - HTTP 500 Internal Server Error". In this case the receiver interface is stateless xi 3.0 compatible(re using the old), after changing it to just stateless also issue persists.
In target url field if i prefix the url with "http" then above mentioned error is occurring otherwise if i use the hostname:port/path.. then it is giving error
"soap: Call failed: com.sap.aii.af.sdk.xi.srt.BubbleException: Unsupported protocol". So maintaing the url as http://hostname:port/pat.....
As in old channel wsrm channel there is no userid and password, i haven't given any userid/pwd in receiver channel.
used the bean sap.com/com.sap.aii.af.soapadapter/XISOAPAdapterBean with parameters
Module Key = soap
Parameter Name = noSOAPMakeSysErrFromResponseFault
Parameter Value = false
and
xmbws.No SOAPIgnoreStatus = true
but not successful.
Please help me. I got stcuk here.Hello Jannus,
The connectivity is working fine. Network team has confirmed it. I doubt that any strucutre(header) difference might be present in message when sending with wsrm adapter compared to sending with soap adapter.
Please let me know the exact difference between soap and wsrm functionality in receiving end.
By considering the structure issue, i have checked the "do not use soap envelope" check box, then i got error "Response message contains an errorXIAdapter/HTTP/ADAPTER.HTTP_EXCEPTION - HTTP 415 Unsupported Media Type"
Then i used message transform bean, but not successful.
Regards,
Ch.Venkat. -
I am getting following error response when I was trying to post input soap message from altova xml spy(scenario:webservice to SAP)
<SOAP:Envelope xmlns OAP="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP:Body>
<SOAP:Fault>
<faultcode>SOAP erver</faultcode>
<faultstring>Server Error</faultstring>
<detail>
<s ystemError xmlns ="http://sap.com/xi/WebService/xi2.0">
<context>XIAdapter</context>
<code>ADAPTER.JAVA_EXCEPTION</code>
<text><![CDATA[
com.sap.aii.af.ra.ms.api.DeliveryException: XIAdapter YNCHONOUS_MESSAGE:
at com.sap.aii.adapter.xi.ms.XIEventHandler.onTransmit(XIEventHandler.java:455)
at com.sap.aii.af.ra.ms.impl.core.queu
What is the reason for the above error?Hi ,
Is it soap to rfc ?
If it is soap to rfc we have to send request messages that will strike the responce message..if request message have not intact to responce message fualt message will send by soap.
plz award points
thanq -
Hi Experts
I am trying to call NW BPM scenario(File to BPM) from PI, and using below adapter config.
I am getting below error.
Failed to call the endpoint: Error in call over HTTP: HTTP 200 OK
SOAP: Call failed: java.io.IOException: HTTP Error response for SOAP request or invalid content-type.; HTTP 200 OK
SOAP: Error occurred: com.sap.engine.interfaces.messaging.api.exception.MessagingException: java.io.IOException: HTTP Error response for SOAP request or invalid content-type.; HTTP 200 OK
MP: exception caught with cause com.sap.engine.interfaces.messaging.api.exception.MessagingException: java.io.IOException: HTTP Error response for SOAP request or invalid content-type.; HTTP 200 OK
Transmitting the message to endpoint <local> using connection File_http://sap.com/xi/XI/System failed, due to: com.sap.engine.interfaces.messaging.api.exception.MessagingException: java.io.IOException: HTTP Error response for SOAP request or invalid content-type.; HTTP 200 OK
Any idea how to fix this issue?
Thanks,
Sandeep Maurya.Hi Sandeep,
Test the URL from your browser and check the proxy settings as well.
Refer the below links
SOAP: call failed: java.io.IOException: invalid content type for SOAP: TEXT
SOAP: Call failed: java.io.IOException: Failed to get the input stream from socket: java.net.SocketException: Connection…
Regards
Bhargava Krishna -
SOAP Receiver Error: HTTP Error response for SOAP Request
Hi gurus,
I'm facing a weird error in File --> PI 7.31 java only --> soap receiver proxy.
The other interfaces runs well. just one get the the following error:
Exception caught by adapter framework: java.io.IOException: Error receiving or parsing request message: java.io.IOException: HTTP Error response for SOAP request or invalid content-type.
I check the payload and test in the inbound proxy. on error.
Any hints?
Thanks a lot!
regards
ChristineHello Christine,
I faced the same issue,
You can use the beans below to overcome the error.
And charset should be utf-8 -
How do I access the DCJMS* variables in my response SOAP:Header ?
Hi all,
I have set up a sync / async Integration Process in XI
This is initiated by a SAP R/3 transaction that calls a synchronous function to enter XI
Once in the Bridge, a JMS receiver adapter sends out an asynchronous request message from XI to MQ
A correlation allows the JMS sender adapter to return an asynchronous response message from MQ to XI back into my the Integration Process
I have set up the JMS sender adapter configuration to return the DC (dynamic configuration) variables in the <SOAP:Header> of the XI response message along with the payload
You can see that the DCJMS* variables are returned below
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
- <!--
Response
-->
- <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SAP="http://sap.com/xi/XI/Message/30">
- <SOAP:Header>
+ <SAP:Main xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsu="http://www.docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" versionMajor="003" versionMinor="000" SOAP:mustUnderstand="1" wsu:Id="wsuid-main-92ABE13F5C59AB7FE10000000A1551F7">
+ <SAP:ReliableMessaging xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
+ <SAP:HopList xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
+ <SAP:RunTime xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
+ <SAP:PerformanceHeader xmlns:SAP="http://sap.com/xi/XI/Message/30">
- <SAP:DynamicConfiguration xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
<SAP:Record namespace="http://sap.com/xi/XI/System/JMS" name="DCJMSCorreleationID">40D982A0-B19D-11DB-9508-0002A5D5916B</SAP:Record>
<SAP:Record namespace="http://sap.com/xi/XI/System/JMS" name="DCJMSTimestamp">1170297456940</SAP:Record>
<SAP:Record namespace="http://sap.com/xi/XI/System/JMS" name="DCJMSMessageID">ID:414d5120514d4430312020202020202045c12b962001dd02</SAP:Record>
</SAP:DynamicConfiguration>
- <SAP:Diagnostic xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
<SAP:TraceLevel>Information
<b>Question</b>
I want to access the DCJMS* variables but am not sure how to go about it as the
variables exist in the <SOAP:Header>?
I followed the SAP documentation to access adapter-specific attributes (refer to link http://help.sap.com/saphelp_nw04/helpdata/en/14/80243b4a66ae0ce10000000a11402f/frameset.htm )
I have used the following code to create a user-defined function for the accessing adapter specific attributes (similar to the link)
public String Get_Msgid(Container container){
DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get
(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
DynamicConfigurationKey key = DynamicConfigurationKey.create
("http://sap.com/xi/XI/System/JMS","DCJMSMessageID");
String jmsMsgID = conf.get(key);
return jmsMsgID;
<b>Question</b>
Do I use message mapping to extract the DCJMS* variables?
<b>Question</b>
If so then which message is used for the source message so that I can access the <SOAP:Header>? Eg do I use the response message type or is there a trick to accessing the SOAP:Header?
<b>Question</b>
Do I use the user-defined function (like above)?
I performed the following steps
Opened the message mapping in edit mode
Created the user-defined function using the graphical editor
Saved the message mapping
I have not connected the user-defined function to any of the xml tags in either the source or target messages
When I go to test the message mapping I am getting the following error
Compilation process error : CreateProcess: null\bin\javac -J-Xmx256m @E:/usr/sap/XID/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Mapd79a7bf0b65611dbaf390002a5d5916b/O1170817003886.txt @E:/usr/sap/XID/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Mapd79a7bf0b65611dbaf390002a5d5916b/S1170817003886.txt error=2
STACKTRACE:
com.sap.aii.ib.core.mapping.exec.ExecuteException: Compilation process error : CreateProcess: null\bin\javac -J-Xmx256m @E:/usr/sap/XID/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Mapd79a7bf0b65611dbaf390002a5d5916b/O1170817003886.txt @E:/usr/sap/XID/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Mapd79a7bf0b65611dbaf390002a5d5916b/S1170817003886.txt error=2
at com.sap.aii.ib.server.mapping.exec.ServiceUtil.compileSourceCode(ServiceUtil.java:207)
at com.sap.aii.ib.server.mapping.exec.ServiceUtil.compile(ServiceUtil.java:156)
at com.sap.aii.ibrep.server.mapping.ServerMapService.compileSourceCode(ServerMapService.java:361)
at com.sap.aii.ibrep.server.mapping.ServerMapService.compileSourceCodeWithoutAndWithArchives(ServerMapService.java:301)
at com.sap.aii.ibrep.server.mapping.ServerMapService.execute(ServerMapService.java:153)
at com.sap.aii.ibrep.sbeans.mapping.MapServiceBean.execute(MapServiceBean.java:52)
at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0.execute(MapServiceRemoteObjectImpl0.java:259)
at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0p4_Skel.dispatch(MapServiceRemoteObjectImpl0p4_Skel.java:146)
at com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:304)
at com.sap.engine.services.rmi_p4.DispatchImpl._run(DispatchImpl.java:193)
at com.sap.engine.services.rmi_p4.server.P4SessionProcessor.request(P4SessionProcessor.java:122)
at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
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)
A thread in the SDN (Error while Activating Message Mapping, Posted: Jan 9, 2007 3:32 PM) suggests checking the java path on the XI machine
This is JAVA_HOME=C:\j2sdk1.4.2_08 and seems ok
<b>Question</b>
Do you know why I would get the compilation error?
Any assistance would be appreciated
Regards,
MikeJin,
My compilation issue has gone via a SAP recommendation to specify the JDK home directory in the instance profile
Back to the mapping - I can now run my scenario
<b>Source message</b>
The response message has the following <SOAP:Header> from which I want to extract the DCJMSCorreleationID (note that it's misspelt)
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
- <!-- Response
-->
- <SAP:DynamicConfiguration xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
<SAP:Record namespace="http://sap.com/xi/XI/System/JMS" name="DCJMSCorreleationID">40D982A0-B19D-11DB-9508-0002A5D5916B</SAP:Record>
<SAP:Record namespace="http://sap.com/xi/XI/System/JMS" name="DCJMSTimestamp">1170297456940</SAP:Record>
<SAP:Record namespace="http://sap.com/xi/XI/System/JMS" name="DCJMSMessageID">ID:414d5120514d4430312020202020202045c12b962001dd02</SAP:Record>
</SAP:DynamicConfiguration>
<b>Grahpical mapping</b>
LHS - Response message with occurrance 0..1 so it is not connected to my UDF
UDF Get_Corrid with no inputs
RHS - The UDF output is connected to the Acknowledgement msg tag <ACK>
<b>UDF</b>
DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get
(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
DynamicConfigurationKey key = DynamicConfigurationKey.create
("http://sap.com/xi/XI/System/JMS","DCJMSCorreleationID");
String Corrid = conf.get(key);
return Corrid;
<b>Target message</b>
The idea is to copy the correlation id of the response message into the acknowledgement message. But as you can see the result is NULL
<?xml version="1.0" encoding="utf-8" ?>
- <ns2:AWB0020_MARKET_DATA_RESPONSE_ACK xmlns:ns2="http://awb.com.au/mq/tx/MarketData">
<ACK>null</ACK>
</ns2:AWB0020_MARKET_DATA_RESPONSE_ACK>
Please advise
Thanks Mike -
Can you Ignore Error Response Code in HttpUrlConnection?
I have a problem with a HttpUrlConnection object throwing an IOException when it gets an HTTP Error Response code. Especially when there is an actual response from the server sent back that has more details in it that are actually helpful.
I would like to just tell the HttpUrlConnection ot ignore HTTP error responses and just pass along the page or data that was returned instead. I need to handle this myself.
The reason if it matters, is I am sending SOAP Envelopes, and if the Web Service doesn't like it, it will send an HTTP 500 Response Code, but it also sends a response SOAP Envelope that tells me exactly what is wrong.
Right now to get this response I have to use a Sniffer, or worse since it is HTTPS (ssl) i have to use the jvm's SSL debug mode, and pull the response out of the hex code.
I couldn't find anything about this, so I am afraid I am SOL, just hoping that there might be an obscure "feature" or "property" that can deal with this, that I can't find.
** 10 Duke Dollars to first person to provide a solution that works **Just call the getErrorStream() method to read the error response. Eg.
HttpURLConnection conn = null;
try {
conn = (HttpURLConnection)
new URL("http://www.google.com/givemea404").openConnection();
} catch (Exception e) {
InputStream in = conn.getErrorStream();
int i = in.read();
while (i != -1) {
System.out.print((char) i);
i = in.read();
} -
Error with SOAP Request to calendar web service
Hi
I'm sending the following SOAP request to a calendar web service to create an appointment in the calendar. The response returns what seems to be a syntax error ("The Create method did not have a proper element in the request") but I can't see the cause of the fault. Any suggestions on what it may be? It's an 11g DB.
Many thanks
-x-POST-x-
POST /ocws-bin/ocas.fcgi HTTP/1.0
Content-Type: text/xml; charset="utf-8"
Content-Length: 993
SOAPAction: SOAPAction: "http://www.oracle.com/WebServices/Calendaring/1.0/Create"
Connection: close
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header><auth:BasicAuth xmlns:auth="http://soap-authentication.org/2002/01/">
<Name>CalendarName</Name><Password>CalendarPassword</Password>
</auth:BasicAuth> </SOAP-ENV:Header>
<SOAP-ENV:Body><cwsl:Create xmlns:cwsl="http://www.oracle.com/WebServices/Calendaring/1.0/"><CmdId>ITS APPOINTMENT</CmdId><iCalendar>
<vcalendar prodid="-//Oracle//Calendaring//Calendarlet//EN" version="2.0">
<vevent><class>PUBLIC</class>
<description>Calendar Body</description>
<dtstart value="DATE-TIME">20102905T120000</dtstart>
<duration>P00DT0H30M00S</duration>
<location>Location of user</location>
<summary>Incident ID - (name of user])</summary>
<uid>XGjRVnpReQALNsILlBlvcyXGCoUyXF</uid>
<x-oracle-eventtype>APPOINTMENT</x-oracle-eventtype>
<priority>5</priority>
</vevent>
</vcalendar>
</iCalendar></cwsl:Create></SOAP-ENV:Body></SOAP-ENV:Envelope>
-x-RESPONSE-x-
HTTP/1.1 500 Internal Server Error
Date: Thu, 27 May 2010 08:22:16 GMT
Server: Apache/2.2.4 (Unix) mod_ssl/2.2.4 OpenSSL/0.9.7a mod_fastcgi/2.4.6
OCAS-ProcTime: 407
Connection: close
Content-Type: text/xml; charset=utf-8
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<soap:Body>
<soap:Fault>
<faultcode>soap:Server.Error::System::SOAPRequest</faultcode>
<faultstring>The Create method did not have a proper element in the request</faultstring>
<detail>
<cwsl:Error xmlns:cwsl="http://www.oracle.com/WebServices/Calendaring/1.0/">
<Class>Error::System::SOAPRequest</Class>
<Code>0020-00-00-00000034</Code>
<Line>3180</Line>
<FileName>SOAPRequestHandler.cpp,v</FileName>
<Version>1.57</Version>
<LastMod>2007/05/30 21:13:25</LastMod>
<Author>pscattol</Author>
<Date>Thu May 27 09:22:16 2010</Date>
<PID>26152</PID>
<TID>3044838304</TID>
<Level>Error</Level>
</cwsl:Error>
</detail>
</soap:Fault>
</soap:Body>
</soap:Envelope>Hi,
I am having problem using dii client, while sending a
request to c# webservice. error follows
QName QNAME_TYPE_STRING = new QName(NS_XSD,
"string");
call.setReturnType(QNAME_TYPE_STRING);
call.setOperationName(new QName(BODY_NAMESPACE_VALUE,
"GetDetails"));
call.addParameter("String_1", QNAME_TYPE_STRING,
ParameterMode.IN);Do you need another call to addParameter here?
String[] params = { "02", "2004" };
String result = (String)call.invoke(params); -
Hello All,
I am getting the below error in the sender communication channel for FILE - PI -SOAP scenario.
i am using integrated configuration in configuration.
"Transmitting the message using connection File_http://sap.com/xi/XI/System failed, due to: com.sap.engine.interfaces.messaging.api.exception.MessagingException: Error encountered while executing mapping: com.sap.aii.af.service.mapping.MappingException: Could not determine mapping steps for message c24a403b-b048-11e0-9c28-00001e07abf4."
Specified operation mapping in the integrated configuration correctly. cache is also up to date.
Could you please let me know what could be the issue.Hi ,
Pleas make sure your system is PI 7.1 EHP1 otherwise you cant do this.
also you cant use ABAP mapping or paremeterized mapping with AAE also dont able to see error message in SXMB_MONI
I will suggest you to go with classical approach. or Atleast first test the end to end interace with classical ID IR approach.
And then go with AAE for performance improvement
Your error may be for response mapping for SOAP.
Please set messaging.syncMessageRemover.removeBody" parameter to "false",in the SAP XI AF Messaging Service
refer this help.
http://help.sap.com/saphelp_nw04s/helpdata/EN/59/25ee41c334c717e10000000a155106/frameset.htm
This .property will allow you to error analysis soap response.
Do you have any fault message structure and mapping in SOAP receiver side?
Do a dummy change in the maaping and activate and then do complete cache refresh0
Delta Cache Refresh:
CPA-Cache and Mapping Runtime Cache are updated independently, i.e.
1.
Mappings objects per activation/change are transferred to ALL Mapping Runtime Caches of all Advanced Adapter Engines
2.
CPA-Cache-Refresh is usually carried out after activation/change of directory objects. Objects are just transferred to the Advanced Adapter Engine where configured to be used
Can be viewed in the Cache Monitoring of the RWB. (other monitoring is reused; no SXMB_MONI).
Refer this:
http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/70b8adc3-728c-2a10-7fad-d43f29074ef8?quicklink=index&overridelayout=true
http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/700058f0-b1a1-2a10-39a8-ab2627b87cfa?quicklink=index&overridelayout=true -
Error capturing SOAP fault for Sync Messages
Hi
We have a Sync interface which makes a Proxy call from ECC to PI and then PI makes Soap Sync call to Web application. We are having issues when handling Exceptions. Sender is getting misleading errors in response, even though they are application errors the proxy sender is getting error like MappingObjectNotFound.
When debug the PI system, PI is truncating error info when it return the reponse.
Below is the scenario of Synchronous interface:
ECC(Proxy) -> PI(Soap Receiver Adapter) -> MasterDataApp-(Webserver)
Below is the actual response from Webserver (Extracted via TCPGW sniffer):
<?xml version="1.0" encoding="utf-8"?><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:Body>
<soapenv:Fault>
<faultcode>soapenv:Server.userException</faultcode>
<faultstring>*java.rmi.RemoteException: No Messages Found*</faultstring>
<detail>
<ns1:hostname xmlns:ns1="http://xml.apache.org/axis/">hostname.com</ns1:hostname>
</detail>
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>
But PI receives this response payload like this :
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
- <!-- XML Validation Inbound Channel Response
-->
<ns1:hostname xmlns:ns1="http://xml.apache.org/axis/">hostname.com</ns1:hostname>
and then Sync Request mesasge fails with below error because of the unexpected response payload as shown above:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
- <!-- Call Adapter
-->
- <SAP:Error SOAP:mustUnderstand="1" xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
<SAP:Category>XIServer</SAP:Category>
<SAP:Code area="MAPPING">NO_MAPPINGPROGRAM_FOUND</SAP:Code>
<SAP:P1>Object ID B0CC6B27847A368AA04F4171EF6460F4 Software Component 86524CE0304911DEAE48CC6C83461631</SAP:P1>
<SAP:P2 />
<SAP:P3 />
<SAP:P4 />
<SAP:AdditionalText />
<SAP:Stack>Mapping program is not available in runtime cache: Object ID B0CC6B27847A368AA04F4171EF6460F4 Software Component 86524CE0304911DEAE48CC6C83461631</SAP:Stack>
<SAP:Retry>M</SAP:Retry>
</SAP:Error>
Also in the response message see this error message:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
- <!--
XML Validation Inbound Channel Response
-->
- <SAP:Error SOAP:mustUnderstand="1" xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
<SAP:Category>Application</SAP:Category>
<SAP:Code area="UNKNOWN">APPLICATION_ERROR</SAP:Code>
<SAP:P1 />
<SAP:P2 />
<SAP:P3 />
<SAP:P4 />
<SAP:AdditionalText>application fault</SAP:AdditionalText>
<SAP:ApplicationFaultMessage namespace="http://xml.apache.org/axis/">hostname</SAP:ApplicationFaultMessage>
<SAP:Stack />
<SAP:Retry>M</SAP:Retry>
</SAP:Error>
Please let me for any clues how to handle this error response.
Thanks,
laxmanHi Laxman,
SOAP Adapter cannot handle fault responses. I understand your issue. You even want to send the errorneous response from the Webservice as a payload back to the sender. But because of application error from Webservice, you are getting an error in the response message (Mapping Not found). SOAP Adapter cannot handle application error (i.e you will not get the errorneous response in form of payload) . For details please read below:
The receiver adapter expects a SOAP message as response. For synchrnous calls, a successful response should be returned with HTTP 200. In this case, the content of the SOAP body will be returned to the caller as the response payload. When some error occurs, the SOAP message may contain the SOAP fault element. In this case, when the fault detail element is not empty, its content will be returned as the fault payload in an application error message. For others, a system error message will be returned to the caller.
HTTP/1.1 200 OK
Content-Type: text/xml; charset="utf-8"
<SOAP:Envelope
xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP:Body>
<m:GetLastTradePriceResponse xmlns:m="Some-URI">
<Price>34.5</Price>
</m:GetLastTradePriceResponse>
</SOAP:Body>
</SOAP:Envelope>
will result in an application response message with response payload
<m:GetLastTradePriceResponse xmlns:m="Some-URI">
<Price>34.5</Price>
</m:GetLastTradePriceResponse>
HTTP/1.1 500 Internal Server Error
Content-Type: text/xml; charset="utf-8"
<SOAP:Envelope
xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP:Body>
<SOAP:Fault>
<faultcode>SOAP:MustUnderstand</faultcode>
<faultstring>SOAP Must Understand Error</faultstring>
</SOAP:Fault>
</SOAP:Body>
</SOAP:Envelope>
will result in a system error message.
HTTP/1.1 500 Internal Server Error
Content-Type: text/xml; charset="utf-8"
<SOAP:Envelope
xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP:Body>
<SOAP:Fault>
<faultcode>SOAP:Server</faultcode>
<faultstring>Server Error</faultstring>
<detail>
<e:myfaultdetails xmlns:e="Some-URI">
<message>My application didn't work</message>
<errorcode>1001</errorcode>
</e:myfaultdetails>
</detail>
</SOAP:Fault>
</SOAP:Body>
</SOAP:Envelope>
will result in an application error message with fault payload
<e:myfaultdetails xmlns:e="Some-URI">
<message>My application didn't work</message>
<errorcode>1001</errorcode>
</e:myfaultdetails>
In order to send the erroneous response as a payload to the sender, you should develop flow in below manner:
ECC(Proxy) -> PI --> ECC(Proxy)
In PI make a SOAP lookup. The response of the SOAP lookup will contain the response given by the WebService (it can be a vaid response or an application error in WebService). Now map this response to the proxy...In this way you can handle the application error msgs from webservice..
I hope this helps you...
Regards,
Rakesh Sharma -
[jwsc] error: Response wrapper bean names must be unique ?
I am trying to use wsdlc and jwsc on my existing WSDL file, with "type=JAXWS", I am getting this error
"[jwsc] error: Response wrapper bean names must be unique and must not clash with other generated classes"
What does it mean? And how can I resolve this?
Here is the full stack trace:
build-service:
[jwsc] JWS: processing module /com/covergence/ws/callouts/CallOutsServiceImpl
[jwsc] Parsing source files
[jwsc] Parsing source files
[jwsc] 1 JWS files being processed for module /com/covergence/ws/callouts/CallOutsServiceImpl
[jwsc] JWS: C:\source_tree\b3.3\ss\java\ws\sdk\build\weblogic\src\com\covergence\ws\callouts\CallOutsServiceImpl.java Validated.
[jwsc] Processing 1 JAX-WS web services...
[jwsc] error: Response wrapper bean names must be unique and must not clash with other generated classes. Class: com.covergence.ws.callouts.CallOutsPortType method getConfig(javax.xml.ws.Holder<java.util.List<com.covergence.ws.callouts.ConfigClassesType>>)
[jwsc] Problem encountered during annotation processing;
[jwsc] see stacktrace below for more information.
[jwsc] [failed to localize] modeler.nestedGeneratorError(java.lang.IllegalArgumentException: trying to create the same field twice: config)
[jwsc] at com.sun.tools.ws.processor.modeler.annotation.WebServiceWrapperGenerator.generateWrappers(WebServiceWrapperGenerator.java:302)
[jwsc] at com.sun.tools.ws.processor.modeler.annotation.WebServiceWrapperGenerator.processMethod(WebServiceWrapperGenerator.java:154)
[jwsc] at com.sun.tools.ws.processor.modeler.annotation.WebServiceVisitor.visitMethodDeclaration(WebServiceVisitor.java:449)
[jwsc] at com.sun.tools.apt.mirror.declaration.MethodDeclarationImpl.accept(MethodDeclarationImpl.java:41)
[jwsc] at com.sun.tools.ws.processor.modeler.annotation.WebServiceVisitor.processMethods(WebServiceVisitor.java:374)
[jwsc] at com.sun.tools.ws.processor.modeler.annotation.WebServiceVisitor.postProcessWebService(WebServiceVisitor.java:338)
[jwsc] at com.sun.tools.ws.processor.modeler.annotation.WebServiceWrapperGenerator.postProcessWebService(WebServiceWrapperGenerator.java:125)
[jwsc] at com.sun.tools.ws.processor.modeler.annotation.WebServiceVisitor.visitInterfaceDeclaration(WebServiceVisitor.java:120)
[jwsc] at com.sun.tools.apt.mirror.declaration.InterfaceDeclarationImpl.accept(InterfaceDeclarationImpl.java:32)
[jwsc] at com.sun.tools.ws.processor.modeler.annotation.WebServiceVisitor.inspectEndpointInterface(WebServiceVisitor.java:420)
[jwsc] at com.sun.tools.ws.processor.modeler.annotation.WebServiceVisitor.visitClassDeclaration(WebServiceVisitor.java:141)
[jwsc] at com.sun.tools.apt.mirror.declaration.ClassDeclarationImpl.accept(ClassDeclarationImpl.java:95)
[jwsc] at com.sun.tools.ws.processor.modeler.annotation.WebServiceAP.buildModel(WebServiceAP.java:300)
[jwsc] at com.sun.tools.ws.processor.modeler.annotation.WebServiceAP.process(WebServiceAP.java:224)
[jwsc] at com.sun.mirror.apt.AnnotationProcessors$CompositeAnnotationProcessor.process(AnnotationProcessors.java:60)
[jwsc] at com.sun.tools.apt.comp.Apt.main(Apt.java:454)
[jwsc] at com.sun.tools.apt.main.JavaCompiler.compile(JavaCompiler.java:448)
[jwsc] at com.sun.tools.apt.main.Main.compile(Main.java:1075)
[jwsc] at com.sun.tools.apt.main.Main.compile(Main.java:938)
[jwsc] at com.sun.tools.apt.Main.processing(Main.java:95)
[jwsc] at com.sun.tools.apt.Main.process(Main.java:43)
[jwsc] at com.sun.tools.apt.Main.main(Main.java:34)
[jwsc] Caused by: java.lang.IllegalArgumentException: trying to create thesame field twice: config
[jwsc] at com.sun.codemodel.JDefinedClass.field(JDefinedClass.java:392)
[jwsc] at com.sun.codemodel.JDefinedClass.field(JDefinedClass.java:363)
[jwsc] at com.sun.tools.ws.processor.modeler.annotation.WebServiceWrapperGenerator.writeMembers(WebServiceWrapperGenerator.java:419)
[jwsc] at com.sun.tools.ws.processor.modeler.annotation.WebServiceWrapperGenerator.generateWrappers(WebServiceWrapperGenerator.java:299)I am starting from WSDL and below are the corresponding elements from WSDL
<message name="getConfig">
<part name="parameters" element="tns:getConfig"/>
</message>
<message name="getConfigResponse">
<part name="result" element="tns:getConfigResponse"/>
</message>
<portType name="CallOutsPortType">
<operation name="getConfig">
<input message="tns:getConfig">
</input>
<output message="tns:getConfigResponse">
</output>
<fault name="callOutFault" message="tns:callOutFault"/>
</operation>
<binding name="CallOutsBinding" type="tns:CallOutsPortType">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
<operation name="getConfig">
<soap:operation soapAction="getConfig"/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
<fault name="callOutFault">
<soap:fault name="callOutFault" use="literal"/>
</fault>
</operation> -
Hi,
I Following tuxedo version on AIX 6.1 Power 7 64 bit.
INFO: Oracle Tuxedo, Version 10.3.0.0, 64-bit, Patch Level 095
Service Meta Information is :
service=StockQuote
export=y
servicetype=service
tuxservice=STOCKQUOTE
svcdescription=This service is used to demo security and xml buffer interop.
inbuf=XML
outbuf=XML
param=XMLBuffer
type=xml
access=inout
size=1000
this is actually picked from salt sample packaged with version 10.3.
Request Message:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:ns1="urn:salt.samples.wsdl"
xmlns:ns2="urn:pack.samples_typedef.salt11">
<SOAP-ENV:Body>
<ns2:StockQuote>
<ns2:inbuf>
</ns2:inbuf>
</ns2:StockQuote>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
I put GWWS under tracing and found following.
Response Messag:
150237.uaix4070!GWWS.5767178.1046.0: TRACE:ms:SCO[4095] FSM State Transition: --WAKEUP-->Created
150237.uaix4070!GWWS.5767178.1046.0: TRACE:ms:SCO[4095] FSM State Transition: --Inbound-->Receive
150237.uaix4070!GWWS.5767178.1046.0: TRACE:ms:SCO[4095] FSM State Transition: --Found-->ParseHTTP
150237.uaix4070!GWWS.5767178.1046.0: TRACE:ms:HTTP Parsing: Buffer length 1140 -- POST /secsapp HTTP/1.1^M
Host: uaix4070.unix.rabobank.nl:8070^M
User-Agent: gSOAP/2.7^M
Content-Type: text/xml; charset=utf-8^M
Content-Length: 437^M
Connection: close^M
SOAPAction: "StockQuote"^M
^M
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLS
150237.uaix4070!GWWS.5767178.1046.0: TRACE:ms:chema"
xmlns:ns1="urn:salt.samples.wsdl"
xmlns:ns2="urn:pack.samples_typedef.salt11">
<SOAP-ENV:Body>
<ns2:StockQuote>
<ns2:inbuf>
</ns2:inbuf>
</ns2:StockQuote>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
150237.uaix4070!GWWS.5767178.1046.0: TRACE:ms:parse_header_field() return 6
150237.uaix4070!GWWS.5767178.1046.0: TRACE:ms:SCO[4095] FSM State Transition: --OK-->HTTPDispatch
150237.uaix4070!GWWS.5767178.1046.0: TRACE:ms:A HTTP message is received, SCO index=4095
150237.uaix4070!GWWS.5767178.1046.0: TRACE:ms:Finding endpoint, soap->path is /secsapp, request_uri is /secsapp
150237.uaix4070!GWWS.5767178.1046.0: TRACE:ms:SCO[4095] FSM State Transition: --Post-->ParseSOAPHeader
150237.uaix4070!GWWS.5767178.1046.0: TRACE:ms:SCO[4095] FSM State Transition: --Default-->ParseHeaderRoot
150237.uaix4070!GWWS.5767178.1046.0: TRACE:ms:A SOAP message is received, SCO index=4095
150237.uaix4070!GWWS.5767178.1046.0: TRACE:ms:SCO[4095] FSM State Transition: --None-->ParseSOAPBody
150237.uaix4070!GWWS.5767178.1046.0: TRACE:ms:SCO[4095] FSM State Transition: --Default-->ParseBodyRoot
150237.uaix4070!GWWS.5767178.1046.0: TRACE:ms:SCO[4095] FSM State Transition: --OK-->ParseBodyElement
150237.uaix4070!GWWS.5767178.1046.0: TRACE:ms:Begin data transformation of request message, buffer type = XML, SCO index=4095
150237.uaix4070!GWWS.5767178.1046.0: TRACE:ms:SCO[4095] FSM State Transition: --Fail-->SOAPFault
150237.uaix4070!GWWS.5767178.1046.0: TRACE:ms:SCO[4095] FSM State Transition: --OK-->PackSOAPBody
150237.uaix4070!GWWS.5767178.1046.0: TRACE:ms:SCO[4095] FSM State Transition: --OK-->PackSOAPHeader
150237.uaix4070!GWWS.5767178.1046.0: TRACE:ms:SCO[4095] FSM State Transition: --Default-->WSRMHandle3
150237.uaix4070!GWWS.5767178.1046.0: TRACE:ms:SCO[4095] FSM State Transition: --OK-->PackHTTP
150237.uaix4070!GWWS.5767178.1046.0: TRACE:ms:SCO[4095] FSM State Transition: --Default-->Send
150237.uaix4070!GWWS.5767178.1046.0: TRACE:ms:Sending HTTP Header: HTTP/1.1 500 Internal Server Error^M
Server: gSOAP/2.7^M
Content-Type: text/xml; charset=utf-8^M
Content-Length: 311^M
Connection: close^M
^M
150237.uaix4070!GWWS.5767178.1046.0: TRACE:ms:Sending SOAP Message: <?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Client</faultcode><faultstring>GWWS_CAT:1022: SOAP Error: Invalid SOAP Body.</faultstring></SOAP-ENV:Fault><
/SOAP-ENV:Body></SOAP-ENV:Envelope>
Is there something wrong with the request ? Are there known bugs with handling of Soap request in this version ?
Thanks & Regards,
Ajeet TewariAjeet,
I believe that may be caused by the fact that the payload is empty (<inbuf></inbuf>). The gateway is very strict on that...
Regards,
Maurice -
Error Writing Error response packet, [EA01]
I found a thread from a couple months ago about this same issue, but I did
not see a resolution . . .
We keep getting this error message on one of our 12 POA's:
35A Error Writing Error response packet. [EA01]
The problem seems to prevent me from receiving administrative notifications
from the POA.
GWPOA.NLM is version 7.00.3, dated January 21,2009. Running on NetWare 6.5
SP8.
Any ideas?
Rick P
Walla Walla Public SchoolsRick Pummel wrote:
> It may be, but I am definitely not getting email notifications from system
> operations on this POA. I get them from all of my other POAs.
>
> If it is a soap error, do you know what the symptoms of the problem might be
> or how to fix it?
>
>>>> Michael Bell<[email protected]> 7/1/2009 8:35 AM >>>
> really? I was under the impression this was a soap only error.
>
>
The fix would be the soap consumer and poa issue. It has no relevance to
email notifications. -
How do I fix this error response?
When I bought my new Macbook Pro, replacing my old Macbook Pro, I can't open alot of documents now that I used to be able to before and they're just .doc documents. I get this error response:
"You can't open the application Microsoft Word because PowerPC applications are no longer supported."You have Word 2004. Update to Office 2011.
In the meantime, open Text Edit in your Applications Folder and in Preferences, check RICH TEXT.
Now you should be able to open your formatted .doc documents.
Maybe you are looking for
-
How to permanently disable the Shared Photo Stream on a windows pc
I've got the Icloud control panel installed on a windows7 pc. On this specific pc I only want My Photostream running. I've tried to disable the Shared Photo Stream - but when I log off my windows user account an then log in again, the checkmark next
-
Line out device not showing up
For some reason, I have lost my Line Out device. I now only have Headphone device. This does not work on most of my applications. Anyone know a fix for this...
-
Spyder 2 crashes: Segmentation fault
Hi, Very often (not always!) when I use Spyder (http://www.archlinux.org/packages/community/any/spyder/) it crashes (just kills itself) when running a script. Debugging mode only gave me this: Segmentation fault Any ideas on how to fix this?
-
IWeb photos won't download to download folder
I've enabled downloading on a few of my photo pages, here's one: http://gobophoto.com/GoboPhoto/Divas_%26_Dames.html However, when I click the download button, it doesn't send the photo to my download folder. It just opens a larger picture on a new p
-
I wish to create package functions that I can use in normal SQL to calculate on the values of a column from multiple rows, like max() does. I am not sure if this is even possible in Oracle 8i or 9i. Specifically, I want three functions: - FIRST( valu