[ https://issues.apache.org/jira/browse/SYNAPSE-576?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12764649#action_12764649 ]
Heshan Suriyaarachchi commented on SYNAPSE-576: ----------------------------------------------- Adriaan, <SOAP-ENV:Detail> element should be inside <SOAP-ENV:Fault> element. That is why the "detail" is disappering in the transformation from 1.1 to 1.2 in your usecase. Therefore the behaviour you experienced is correct. Please refer [1] [2] for more information. Try resending your message as follows. <?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>Something went wrong</faultstring> <detail> <someElement>Couldn't find the element with id 123</someElement> </detail> </SOAP-ENV:Fault> </SOAP-ENV:Body> </SOAP-ENV:Envelope> [1] - Example 10 of SOAP 1.1 Specification http://www.w3.org/TR/2000/NOTE-SOAP-20000508/ [2] - Example 52 of SOAP 1.2 Specification http://www.w3.org/TR/2001/WD-soap12-20010709/ > Content of Soap 1.1 Fault not completely transformed into SOAP 1.2 Fault - > Details are missing > ---------------------------------------------------------------------------------------------- > > Key: SYNAPSE-576 > URL: https://issues.apache.org/jira/browse/SYNAPSE-576 > Project: Synapse > Issue Type: Bug > Components: Core > Affects Versions: 1.3 > Reporter: Adriaan Wisse > > We are using something like the following synapse configuration to convert > soap 1.2 messages to soap 1.1 messages > <proxy name="SynapseProxy" transports="http, https"> > <target> > <endpoint name="Soap11Webservice"> > <address uri="http://localhost/MySoap11Webservice" > format="soap11" /> > </endpoint> > </target> > </proxy> > This is all working well except when we are receiving a Soap Fault from the > 'MySoap11Webservice' like this: > <?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>Something went wrong</faultstring> > </SOAP-ENV:Fault> > <SOAP-ENV:Detail> > <someElement>Couldn't find the element with id > 123</someElement> > </SOAP-ENV:Detail> > </SOAP-ENV:Body> > </SOAP-ENV:Envelope> > Synapse transforms this message using the > org.apache.synapse.core.axis2.SOAPUtils into the following soap 1.2 message: > <?xml version='1.0' encoding='utf-8'?> > <soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"> > <soapenv:Body> > <soapenv:Fault> > > <soapenv:Code><soapenv:Value>soapenv:Sender</soapenv:Value></soapenv:Code> > <soapenv:Reason><soapenv:Text xml:lang="en">Something went > wrong</soapenv:Text></soapenv:Reason> > </soapenv:Fault> > </soapenv:Body> > </soapenv:Envelope> > As you can see the details disappeared. > Adding something like this to the SOAPUtils java class on line 205 solves > this problem. > SOAPFaultDetail detail = soapFault.getDetail(); > if (detail != null) { > SOAPFaultDetail newSOAPFaultDetail > = > soap12Factory.createSOAPFaultDetail(newSOAPFault); > > Iterator<OMElement> iter = detail.getAllDetailEntries(); > while (iter.hasNext()) { > OMElement detailEntry = iter.next(); > newSOAPFaultDetail.addDetailEntry(detailEntry); > } > newSOAPFault.setDetail(newSOAPFaultDetail); > } > When I look further into the code of the SOAPUtils I also see that there is > no transformation of soap 1.1 faultactor into soap 1.2 Role. > Moreover the transformation from soap 1.2 to soap 1.1. is also missing both > the detail and role-faultactor transformation. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@synapse.apache.org For additional commands, e-mail: dev-h...@synapse.apache.org