Forgot to mention that this is related to CXF-4600 :( Follow up (thinking CXF way and for a while ignoring previous post):
The sources we're going to talk about are located here: http://anonsvn.jboss.org/repos/jbossws/shared-testsuite/trunk/testsuite/src/test/java/org/jboss/test/ws/jaxws/jbws3552 We have the following exception hierarchy: @XmlAccessorType(XmlAccessType.FIELD) @XmlTransient ExtendedAdaptedExceptionCA -> AdaptedExceptionCA * code * message * description * complexObject CXF reuses JAXB for schema generation and this is the schema we're getting: <xs:element name="ExtendedAdaptedExceptionCA" type="tns:ExtendedAdaptedExceptionCA"/> <xs:complexType name="ExtendedAdaptedExceptionCA"> <xs:sequence> <xs:element name="description" nillable="true" type="xs:string"/> <xs:element name="complexObject" nillable="true" type="xs:string"/> <xs:element name="message" nillable="true" type="xs:string"/> <xs:element name="code" nillable="true" type="xs:int"/> </xs:sequence> </xs:complexType> and <xs:element name="AdaptedExceptionCA" type="tns:AdaptedExceptionCA"/> <xs:complexType name="AdaptedExceptionCA"> <xs:sequence/> </xs:complexType> In our humbly opinion because AdaptedExceptionCA is @XmlTransient annotated see: http://docs.oracle.com/javaee/6/api/javax/xml/bind/annotation/XmlTransient.html the above AdaptedExceptionCA definition generated by de facto "JAXB STANDARD" is wrong. If we'll ignore (will close all our eyes) the fact that inheritance is completely broken (what is completely wrong BTW) when mapped to XML then the above definition should at least look like: <xs:element name="AdaptedExceptionCA" type="xs:anyType"/> <!-- the below definition should never be generated --> <!--xs:complexType name="AdaptedExceptionCA"> <xs:sequence/> </xs:complexType--> WDYT? PS1: Just thinking loud :) PS2: Attached are generated WSDL sources. On 11/30/2012 02:53 PM, Richard Opalka wrote: > Hi CXF folks, > > Below is copy/paste from JAXWS 2.2 spec, Section 3.7 - Service Specific > Exception: > --- > For exceptions that do not match the pattern described in section 2.5, > JAX-WS maps those exceptions to Java > beans and then uses those Java beans as input to the JAXB mapping. > --- > > I'm wondering why CXF isn't using generated 'exception' beans for JAXB > de/serialization & WSDL generation > but instead operate directly on top of exception objects? I know CXF is > passing TCK, but isn't it violating JAXWS spec.? > Most probably TCK tests doesn't cover this issue :( > > Cheers, > -- Richard Opalka Principal Software Engineer JBoss, by Red Hat Cell: +420 731 186 942
EndpointImplService.wsdl
Description: application/wsdl
EndpointImplService_schema1.xsd
Description: XML document