そのように定義された CXF Fault クラスがあります。
@WebFault(name = "FaultContainer",
faultBean = "myapi.transport.FaultContainer",
targetNamespace = "mynmspace")
public class ServiceFaultSecond extends java.lang.Exception {
...
}
ご覧のとおり、通常の Java Exception を拡張します。問題は、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 を拡張します)。ここで、クライアントを生成しようとすると、コンパイル エラーが発生します。java.lang の代わりに mynmspace.Exception と mynmspace.Throwable が必要です...
通常、CXF は xs:extension 要素を WSDL に入れません。なぜ今そうなったのですか?