我有一个定义的CXF Fault类:
@WebFault(name = "FaultContainer",
faultBean = "myapi.transport.FaultContainer",
targetNamespace = "mynmspace")
public class ServiceFaultSecond extends java.lang.Exception {
...
}
如您所见,它扩展了普通的Java异常。问题是,在CXF生成的WSDL中,这个类以这样的方式表示:
<xs:complexType name="serviceFaultSecond">
<xs:complexContent>
<xs:extension base="tns:exception">
<xs:sequence>
<xs:element minOccurs="0" name="faultInfo" type="tns:FaultContainer"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
这里扩展了一个“tns:exception”(比扩展tns:throwable)。现在,当我尝试生成客户端时,存在编译错误 - 它需要mynmspace.Exception和mynmspace.Throwable而不是java.lang ...
通常,CXF不会将xs:extension元素放入WSDL中,为什么现在会发生?