Aegis allows you to declare a base class in the throw clause and deliver
specific subclasses based on the actual class thrown. All the classes in
question end up in the wsdl.



On Fri, Mar 21, 2008 at 9:41 AM, mikem2005 <[EMAIL PROTECTED]> wrote:

>
> I'm trying to do the same thing...does anyone know if hierarchical
> exceptions
> are possible with CXF?
>
> Thanks!
> Mike
>
>
>
>
> Joel Turkel wrote:
> >
> > Hi,
> >
> > Is there anyway to get CXF to generate an inheritance hierarchy of users
> > defined exceptions? For example, I'd like to generate something like the
> > following from a WSDL:
> >
> > public interface Greeter {
> >
> >     public void pingMe() throws PingMeSubclassFault, PingMeFault;
> >
> > }
> >
> > where PingMeSubclassFault is a subclass of PingMeFault. The WSDL below
> > doesn't seem to do the trick i.e. PingMeFault and PingMeSubclassFault
> are
> > not related via inheritance. The actually WSDL I'm working with has a
> rich
> > hierarchy of exception so the lack of exception inheritance makes the
> > generated code hard to work with.
> >
> > Thanks,
> > Joel
> >
> > <?xml version="1.0" encoding="UTF-8"?>
> > <wsdl:definitions name="HelloWorld"
> >       targetNamespace="http://apache.org/hello_world_soap_http";
> >       xmlns="http://schemas.xmlsoap.org/wsdl/";
> >       xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";
> >       xmlns:tns="http://apache.org/hello_world_soap_http";
> >       xmlns:x1="http://apache.org/hello_world_soap_http/types";
> >       xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
> >       xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
> >       <wsdl:types>
> >               <schema
> >                       targetNamespace="
> http://apache.org/hello_world_soap_http/types";
> >                       xmlns="http://www.w3.org/2001/XMLSchema";
> >                       xmlns:tns="
> http://apache.org/hello_world_soap_http/types";
> >                       elementFormDefault="qualified">
> >                       <element name="pingMe">
> >                               <complexType />
> >                       </element>
> >                       <element name="pingMeResponse">
> >                               <complexType />
> >                       </element>
> >                       <element name="faultDetail" type="tns:faultDetail"
> />
> >                       <complexType name="faultDetail">
> >                               <sequence>
> >                                       <element name="minor" type="short"
> />
> >                                       <element name="major" type="short"
> />
> >                               </sequence>
> >                       </complexType>
> >                       <element name="subclassFaultDetail">
> >                               <complexType>
> >                                       <complexContent>
> >                                               <extension
> base="tns:faultDetail">
> >                                                       <sequence />
> >                                               </extension>
> >                                       </complexContent>
> >                               </complexType>
> >                       </element>
> >               </schema>
> >       </wsdl:types>
> >       <wsdl:message name="pingMeRequest">
> >               <wsdl:part name="in" element="x1:pingMe" />
> >       </wsdl:message>
> >       <wsdl:message name="pingMeResponse">
> >               <wsdl:part name="out" element="x1:pingMeResponse" />
> >       </wsdl:message>
> >       <wsdl:message name="pingMeFault">
> >               <wsdl:part name="faultDetail" element="x1:faultDetail" />
> >       </wsdl:message>
> >       <wsdl:message name="pingMeSubclassFault">
> >               <wsdl:part name="faultDetail"
> element="x1:subclassFaultDetail" />
> >       </wsdl:message>
> >       <wsdl:portType name="Greeter">
> >               <wsdl:operation name="pingMe">
> >                       <wsdl:input name="pingMeRequest"
> >                               message="tns:pingMeRequest" />
> >                       <wsdl:output name="pingMeResponse"
> >                               message="tns:pingMeResponse" />
> >                       <wsdl:fault name="pingMeFault"
> message="tns:pingMeFault" />
> >                       <wsdl:fault name="pingMeSubclassFault"
> >                               message="tns:pingMeSubclassFault" />
> >               </wsdl:operation>
> >       </wsdl:portType>
> >       <wsdl:binding name="Greeter_SOAPBinding" type="tns:Greeter">
> >               <soap:binding style="document"
> >                       transport="http://schemas.xmlsoap.org/soap/http";
> />
> >               <wsdl:operation name="pingMe">
> >                       <soap:operation style="document" />
> >                       <wsdl:input>
> >                               <soap:body use="literal" />
> >                       </wsdl:input>
> >                       <wsdl:output>
> >                               <soap:body use="literal" />
> >                       </wsdl:output>
> >                       <wsdl:fault name="pingMeFault">
> >                               <soap:fault name="pingMeFault"
> use="literal" />
> >                       </wsdl:fault>
> >                       <wsdl:fault name="pingMeSubclassFault">
> >                               <soap:fault name="pingMeSubclassFault"
> use="literal" />
> >                       </wsdl:fault>
> >               </wsdl:operation>
> >       </wsdl:binding>
> >       <wsdl:service name="SOAPService">
> >               <wsdl:port binding="tns:Greeter_SOAPBinding"
> name="SoapPort">
> >                       <soap:address
> >                               location="
> http://localhost:9000/SoapContext/SoapPort"; />
> >               </wsdl:port>
> >       </wsdl:service>
> > </wsdl:definitions>
> >
>
> --
> View this message in context:
> http://www.nabble.com/Generated-Faults-and-Inheritance-tp16133913p16197927.html
> Sent from the cxf-user mailing list archive at Nabble.com.
>
>

Reply via email to