You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Daniel Kulp (JIRA)" <ji...@apache.org> on 2009/10/05 16:09:31 UTC

[jira] Resolved: (CXF-1458) SOAPFaultException thrown from @WebServiceProvider class is not correctly populated

     [ https://issues.apache.org/jira/browse/CXF-1458?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Daniel Kulp resolved CXF-1458.
------------------------------

       Resolution: Fixed
    Fix Version/s: 2.1.6


Resolving this as fixed since there is a test case that does this exact thing that passes.   

> SOAPFaultException thrown from @WebServiceProvider class is not correctly populated
> -----------------------------------------------------------------------------------
>
>                 Key: CXF-1458
>                 URL: https://issues.apache.org/jira/browse/CXF-1458
>             Project: CXF
>          Issue Type: Bug
>          Components: JAX-WS Runtime
>    Affects Versions: 2.0.4, 2.0.5
>         Environment: Windows XP, JDK1.5.0_12, Tomcat 5.5.25
>            Reporter: Steve Wu
>             Fix For: 2.1.6
>
>
> My issue is similar to cxf-1417. I downloaded cxf 2.0.5 (2-22-08) but it doesn't solved my problem.
> @WebServiceProvider()
> @ServiceMode(value = Service.Mode.PAYLOAD)
> public class TestGreetingProvider
>   implements Provider<DOMSource>
> {
>     @Resource
>     private WebServiceContext context;
>     //~ Constructors -------------------------------------------------------------------------------
>     public TestGreetingProvider()
>     {
>     }
>     //~ Methods ------------------------------------------------------------------------------------
>     public DOMSource invoke(DOMSource request)
>     {
>         try
>         {
>             // do some thing
>         }
>         catch(Exception e)
>         {
>             
>              SOAPFactory factory = SOAPFactory.newInstance();
>              SOAPFault soapFault = factory.createFault();   
>             
>              soapFault.setFaultString("Test Fault String ****");
>              Detail detail = soapFault.addDetail();
>              detail = soapFault.getDetail();
>              QName qName = new QName("http://www.Hello.org/greeter","TestFault","ns");
>              DetailEntry de = detail.addDetailEntry(qName);            
>              qName = new QName("http://www.Hello.org/greeter","ErrorCode","ns");
>              SOAPElement errorElement = de.addChildElement(qName);
>              errorElement.setTextContent("errorcode");   
>                        
>              throw new SOAPFaultException(soapFault);
>         
>         }
>         // return DOMSource here
>     }
> }  
> I am expecting the following fault message in the client:
> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
>     <soapenv:Body>
>       <soapenv:Fault>       
>         <faultstring>Test Fault String ****</faultstring>
>         <detail>
>           <ns:TestFault xmlns:ns="http://www.Hello.org/greeter">
>             <ns:ErrorCode xmlns:ns="http://www.Hello.org/greeter">errorcode</ErrorCode>            
>           </ns:TestFault>
>         </detail>
>       </soapenv:Fault>
>     </soapenv:Body>
>   </soapenv:Envelope>
>   
>   
> But I got the following in the client when using cxf 2.0.4. NOTE: The detail section is missing. 
> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
>     <soapenv:Body>
>       <soapenv:Fault>      
>       <faultcode>soap:Server</faultcode> 
>         <faultstring>Test Fault String ****</faultstring>        
>       </soapenv:Fault>
>     </soapenv:Body>
>   </soapenv:Envelope>
>   
>   
> If I use cxf 2.0.5(2-22-08) I didn't see any response in my TCPMonitor.  

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