Hi,

I have hard time trying to make my JAX-RPC webservice endpoint integrate to Axis.

I have a Webservice Service Endpoint Interface, its implementation class and a WSDL.
The WSDL declares a SOAP fault.
If i use the skeleton generated by Axis and throw my custom exception from it,
the custom exception appears in the details element of the <soapenv:Fault> element.

If I use my own JAX-RPC implementation and throw my custom exception from it I get:
org.xml.sax.SAXException: SimpleDeserializer encountered a child element, which is NOT expected, in something it was trying to deserialize.


Actually in my JAX-RPC class, I use the exception class generated by Axis WSDL2Java which extends org.apache.axis.AxisFault.
and i suppose that it has to be declared in the server-config.wsdd.
I have noticed that the Axis BindingSkeleton declares the exception in a static block.

        _fault = new org.apache.axis.description.FaultDesc();
        _fault.setName("InsuranceFault");
        _fault.setQName(new javax.xml.namespace.QName("http://", "InsuranceDetails"));
        _fault.setClassName("com.fis.infra.ws.InsuranceFault");
        _fault.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
        _oper.addFault(_fault);
       
Is it possible to use an Axis exception from a standard JAX-RPC implementation class ?
I am really reluctant to use the skeletons generated by Axis and put my code in them
and would prefer to stick to standard JAX-RPC implementations.

I guess it would be better to use also a true JAX-RPC exception also but I haven't found
out how to do it. Would someone have an example of a standard JAX-RPC Web service which
throws a custom exception with Apache Axis ?

Thanks,
bengali

Reply via email to