You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Davide Gesino (JIRA)" <ji...@apache.org> on 2008/02/06 09:49:09 UTC

[jira] Created: (CXF-1417) SOAPFaultException built programmatically and thrown in a JAX-WS handler are not correctly populated

SOAPFaultException built programmatically and thrown in a JAX-WS handler are not correctly populated
----------------------------------------------------------------------------------------------------

                 Key: CXF-1417
                 URL: https://issues.apache.org/jira/browse/CXF-1417
             Project: CXF
          Issue Type: Bug
          Components: JAX-WS Runtime
    Affects Versions: 2.0.4, 2.0.3, 2.0.2, 2.0.1, 2.0, 2.1, 2.0.5
         Environment: whatever
            Reporter: Davide Gesino
             Fix For: 2.1, 2.0.5


Create a SOAPFaultException filled with a SOAPFault and throw it from a JAX-WS Hander.
On the other side some content of the SOAPFaultException is missing.

Here is a code that can be tried: create a SOAPHandler with the following handleMessage().

public boolean handleMessage(SOAPMessageContext ctx) {
                Boolean outboundProperty = (Boolean) ctx
                                .get(MessageContext.MESSAGE_OUTBOUND_PROPERTY);

                if (!outboundProperty) {
                        SOAPMessage msg = ctx.getMessage();
                        SOAPBody body;
                        try {
                                body = msg.getSOAPBody();

                                SOAPFault fault = body.addFault();
                                QName faultName = new QName(SOAPConstants.URI_NS_SOAP_ENVELOPE,
                                                "Server");
                                fault.setFaultCode(faultName);
                                fault.setFaultActor("http://gizmos.com/orders");
                                fault.setFaultString("Server not responding");

                                Detail detail = fault.addDetail();

                                QName entryName = new QName("http://gizmos.com/orders/",
                                                "order", "PO");
                                DetailEntry entry = detail.addDetailEntry(entryName);
                                entry.addTextNode("Quantity element does not have a value");

                                QName entryName2 = new QName("http://gizmos.com/orders/",
                                                "order", "PO");
                                DetailEntry entry2 = detail.addDetailEntry(entryName2);
                                entry2.addTextNode("Incomplete address: no zip code");

                                throw new SOAPFaultException(fault);

                        } catch (SOAPException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                        }
                }

                return true;
        } 

This is what I would expect:

<soapenv:Fault>
      <faultcode>soapenv:Server</faultcode>
      <faultstring>Server not responding</faultstring>
      <faultactor>http://gizmos.com/orders</faultactor>
      <detail>
        <PO:order xmlns:PO="http://gizmos.com/orders/">Quantity element does not have a value</PO:order>
        <PO:order xmlns:PO="http://gizmos.com/orders/">Incomplete address: no zip code</PO:order>
      </detail>
  </soapenv:Fault>

And this is what I get:

 <soap:Fault>
      <faultcode>soap:Server</faultcode>
      <faultstring>Server not responding</faultstring>
</soap:Fault>






-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Assigned: (CXF-1417) SOAPFaultException built programmatically and thrown in a JAX-WS handler are not correctly populated

Posted by "Daniel Kulp (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CXF-1417?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Daniel Kulp reassigned CXF-1417:
--------------------------------

    Assignee: Daniel Kulp

> SOAPFaultException built programmatically and thrown in a JAX-WS handler are not correctly populated
> ----------------------------------------------------------------------------------------------------
>
>                 Key: CXF-1417
>                 URL: https://issues.apache.org/jira/browse/CXF-1417
>             Project: CXF
>          Issue Type: Bug
>          Components: JAX-WS Runtime
>    Affects Versions: 2.0, 2.0.1, 2.0.2, 2.0.3, 2.0.4, 2.1, 2.0.5
>         Environment: whatever
>            Reporter: Davide Gesino
>            Assignee: Daniel Kulp
>             Fix For: 2.1, 2.0.5
>
>
> Create a SOAPFaultException filled with a SOAPFault and throw it from a JAX-WS Hander.
> On the other side some content of the SOAPFaultException is missing.
> Here is a code that can be tried: create a SOAPHandler with the following handleMessage().
> public boolean handleMessage(SOAPMessageContext ctx) {
>                 Boolean outboundProperty = (Boolean) ctx
>                                 .get(MessageContext.MESSAGE_OUTBOUND_PROPERTY);
>                 if (!outboundProperty) {
>                         SOAPMessage msg = ctx.getMessage();
>                         SOAPBody body;
>                         try {
>                                 body = msg.getSOAPBody();
>                                 SOAPFault fault = body.addFault();
>                                 QName faultName = new QName(SOAPConstants.URI_NS_SOAP_ENVELOPE,
>                                                 "Server");
>                                 fault.setFaultCode(faultName);
>                                 fault.setFaultActor("http://gizmos.com/orders");
>                                 fault.setFaultString("Server not responding");
>                                 Detail detail = fault.addDetail();
>                                 QName entryName = new QName("http://gizmos.com/orders/",
>                                                 "order", "PO");
>                                 DetailEntry entry = detail.addDetailEntry(entryName);
>                                 entry.addTextNode("Quantity element does not have a value");
>                                 QName entryName2 = new QName("http://gizmos.com/orders/",
>                                                 "order", "PO");
>                                 DetailEntry entry2 = detail.addDetailEntry(entryName2);
>                                 entry2.addTextNode("Incomplete address: no zip code");
>                                 throw new SOAPFaultException(fault);
>                         } catch (SOAPException e) {
>                                 // TODO Auto-generated catch block
>                                 e.printStackTrace();
>                         }
>                 }
>                 return true;
>         } 
> This is what I would expect:
> <soapenv:Fault>
>       <faultcode>soapenv:Server</faultcode>
>       <faultstring>Server not responding</faultstring>
>       <faultactor>http://gizmos.com/orders</faultactor>
>       <detail>
>         <PO:order xmlns:PO="http://gizmos.com/orders/">Quantity element does not have a value</PO:order>
>         <PO:order xmlns:PO="http://gizmos.com/orders/">Incomplete address: no zip code</PO:order>
>       </detail>
>   </soapenv:Fault>
> And this is what I get:
>  <soap:Fault>
>       <faultcode>soap:Server</faultcode>
>       <faultstring>Server not responding</faultstring>
> </soap:Fault>

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Resolved: (CXF-1417) SOAPFaultException built programmatically and thrown in a JAX-WS handler are not correctly populated

Posted by "Daniel Kulp (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CXF-1417?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Daniel Kulp resolved CXF-1417.
------------------------------

    Resolution: Fixed

> SOAPFaultException built programmatically and thrown in a JAX-WS handler are not correctly populated
> ----------------------------------------------------------------------------------------------------
>
>                 Key: CXF-1417
>                 URL: https://issues.apache.org/jira/browse/CXF-1417
>             Project: CXF
>          Issue Type: Bug
>          Components: JAX-WS Runtime
>    Affects Versions: 2.0, 2.0.1, 2.0.2, 2.0.3, 2.0.4, 2.1, 2.0.5
>         Environment: whatever
>            Reporter: Davide Gesino
>            Assignee: Daniel Kulp
>             Fix For: 2.1, 2.0.5
>
>
> Create a SOAPFaultException filled with a SOAPFault and throw it from a JAX-WS Hander.
> On the other side some content of the SOAPFaultException is missing.
> Here is a code that can be tried: create a SOAPHandler with the following handleMessage().
> public boolean handleMessage(SOAPMessageContext ctx) {
>                 Boolean outboundProperty = (Boolean) ctx
>                                 .get(MessageContext.MESSAGE_OUTBOUND_PROPERTY);
>                 if (!outboundProperty) {
>                         SOAPMessage msg = ctx.getMessage();
>                         SOAPBody body;
>                         try {
>                                 body = msg.getSOAPBody();
>                                 SOAPFault fault = body.addFault();
>                                 QName faultName = new QName(SOAPConstants.URI_NS_SOAP_ENVELOPE,
>                                                 "Server");
>                                 fault.setFaultCode(faultName);
>                                 fault.setFaultActor("http://gizmos.com/orders");
>                                 fault.setFaultString("Server not responding");
>                                 Detail detail = fault.addDetail();
>                                 QName entryName = new QName("http://gizmos.com/orders/",
>                                                 "order", "PO");
>                                 DetailEntry entry = detail.addDetailEntry(entryName);
>                                 entry.addTextNode("Quantity element does not have a value");
>                                 QName entryName2 = new QName("http://gizmos.com/orders/",
>                                                 "order", "PO");
>                                 DetailEntry entry2 = detail.addDetailEntry(entryName2);
>                                 entry2.addTextNode("Incomplete address: no zip code");
>                                 throw new SOAPFaultException(fault);
>                         } catch (SOAPException e) {
>                                 // TODO Auto-generated catch block
>                                 e.printStackTrace();
>                         }
>                 }
>                 return true;
>         } 
> This is what I would expect:
> <soapenv:Fault>
>       <faultcode>soapenv:Server</faultcode>
>       <faultstring>Server not responding</faultstring>
>       <faultactor>http://gizmos.com/orders</faultactor>
>       <detail>
>         <PO:order xmlns:PO="http://gizmos.com/orders/">Quantity element does not have a value</PO:order>
>         <PO:order xmlns:PO="http://gizmos.com/orders/">Incomplete address: no zip code</PO:order>
>       </detail>
>   </soapenv:Fault>
> And this is what I get:
>  <soap:Fault>
>       <faultcode>soap:Server</faultcode>
>       <faultstring>Server not responding</faultstring>
> </soap:Fault>

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.