on 2015 Aug 25 10:59 AM
Hi experts,
Here is my scenario : SProxy => PI => SoapUI
It's a Synchrone interface.
I have some difficulty with Fault Message.
com.sap.engine.interfaces.messaging.api.exception.MessagingException: com.sap.engine.interfaces.messaging.api.exception.MessagingException: SOAP: Response message contains an errorXIAdapter/PARSING/ADAPTER.SOAP_EXCEPTION - soap fault: Fault String here ... at com.sap.aii.adapter.soap.web.SOAPHandler.processSOAPtoXMB(SOAPHandler.java:772) at ...
Response from SoapUI (Fault Message) :
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header/>
<soapenv:Body>
<soapenv:Fault>
<faultcode>Fault Code here ...</faultcode>
<faultstring>Fault String here ...</faultstring>
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>
I created a MT for my Outbound interface fault message (SProxy - ECC) :
.
It's a standard Fault Message.
For SoapUI response i tried to create an External Definition with a custom XSD :
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
targetNamespace="http://schemas.xmlsoap.org/soap/envelope/">
<xs:complexType name="BodyType">
<xs:sequence>
<xs:element name="Fault" type="SOAP-ENV:FaultType"/>
</xs:sequence>
</xs:complexType>
<xs:element name="Envelope">
<xs:complexType>
<xs:sequence>
<xs:element name="Body" type="SOAP-ENV:BodyType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="FaultType">
<xs:sequence>
<xs:element name="faultcode" type="xs:string"/>
<xs:element name="faultstring" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
But i have always this error :
I tried to use http://schemas.xmlsoap.org/soap/envelope/ in external definition but same problem.
Soap Envelope in External Definition :
Here is my mapping :
I don't understand why i always have this error ...
Maybe my External Definition doesn't match with SoapUI response ?
Regards,
Youri
Request clarification before answering.
Hi Youri,
Only for testing purpose you can try to set as well Do Not Use SOAP Envelope, in this way you could check in the monitoring what is the exact response . Have you tried with SOAPui?. It is interesting to know what is the exact response and with this response to find out if there is a data issue or web error and so on.
Regards.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I use SOAPUI with MockService.
I see the response :
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header/>
<soapenv:Body>
<soapenv:Fault>
<faultcode>Fault Code here ...</faultcode>
<faultstring>Fault String here ...</faultstring>
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>
If i use "Do Not Use Soap Envelop" i can't use WSDL Definition (Message structure).
Hi Youri,
If i use "Do Not Use Soap Envelop" i can't use WSDL Definition (Message structure).You can use the wsdl. You only need to do an extra mapping, with XSLT for example to wrap (request, XSLT will be the last mapping) and to unwrap (response, XSLT will be the first mapping). The XSLT is really easy to do it, if you have problems, we can help you.
Regards.
Ok i used XSLT mapping with
For Request and Response no-problem, it's ok.
But with Fault message i have an error :
SOAP: Response message contains an errorXIAdapter/HTTP/ADAPTER.HTTP_EXCEPTION - HTTP 500 Internal
If i use XMBWS.NoSOAPIgnoreStatusCode = true
I have an other error :
Error encountered while executing mapping: com.sap.aii.af.service.mapping.MappingException: Mapping failed in runtimeRuntime Exception when executing application mapping program com/sap/xi/tf/_mm_eprior_2_ecc_inboxreq_; Details: com.sap.aii.mappingtool.tf7.IllegalInstanceException; Cannot create target element /ns3:mt_einv_inboxreq_resp. Values missing in queue context. Target XSD requires a value for this element, but the target-field mapping does not create one. Check whether the XML instance is valid for the source XSD, and whether the target-field mapping fulfils the requirement of the target XSD at com.sap.aii.adapter.soap.web.SOAPHandler.processSOAPtoXMB(SOAPHandler.java:772) at ...
MT_EINV_INBOXREQ_RESP = Good response, not fault message ...
For PI if i unwrap SOAP Envelope in Fault message he doesn't see that's a Fault message ? strange no ?
| User | Count |
|---|---|
| 9 | |
| 5 | |
| 4 | |
| 4 | |
| 4 | |
| 3 | |
| 3 | |
| 2 | |
| 2 | |
| 2 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.