4 Replies Latest reply on Sep 19, 2007 7:22 AM by Thomas Diesler

    How di I get detail in SOAPFault

    Oskar Carlstedt Novice

      Hello!

      I can't get the detail element of the SOAPFault. Is there a magic way to do this. I have a Provider< SOAPMessage > implementation. When I do the following ...

      @Local
      @Stateless
      @WebServiceProvider(
       serviceName = "MyService",
       portName = "MyServiceSoap11Port",
       targetNamespace = "http://my.service.com/something",
       wsdlLocation = "META-INF/wsdl/my-service.wsdl")
      @ServiceMode(value = Service.Mode.MESSAGE)
      public class MyServiceEndpointProvider implements Provider<SOAPMessage> {
      
       public SOAPMessage invoke(SOAPMessage requestSoapMessage) {
       ...
      
       SOAPFault theSOAPFault = SOAPFactory.newInstance().createFault();
       Detail soapFaultDetail = soapFault.addDetail();
       SOAPElement myFaultElement = soapFaultDetail.addChildElement(new QName("http://my.service.com/common-ws/types", "myFault"));
       SOAPElement myCodeElement = myFaultElement.addChildElement(new QName("http://my.service.com/common-ws/types", "code"));
       myCodeElement.setNodeValue("SC_BAD_REQUEST");
       SOAPElement myMessageElement = myFaultElement.addChildElement(new QName("http://my.service.com/common-ws/types", "message"));
       myMessageElement.setNodeValue("This is a faked error");
       throw new SOAPFaultException(theSOAPFault)
      
       ...
       }
      }
      


      ... the detail part of the fault is missing, i.e. the serialized response does not contain my detail information, just the top fault element. Am I missing something obvious here or is it a bug. I'm using JBoss 4.2.1.GA with JBossWS 2.0.1.GA. And yes, my wsdl points out a fault element specifying the detail above.

      Thanks in advance
      /Oskar