You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@synapse.apache.org by "Heshan Suriyaarachchi (JIRA)" <ji...@apache.org> on 2009/10/12 13:01:31 UTC

[jira] Commented: (SYNAPSE-576) Content of Soap 1.1 Fault not completely transformed into SOAP 1.2 Fault - Details are missing

    [ 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-unsubscribe@synapse.apache.org
For additional commands, e-mail: dev-help@synapse.apache.org