CXF генерирует WSDL, где Fault расширяет tns: исключение
У меня есть класс CXF Fault, определенный таким образом:
@WebFault(name = "FaultContainer",
faultBean = "myapi.transport.FaultContainer",
targetNamespace = "mynmspace")
public class ServiceFaultSecond extends java.lang.Exception {
...
}
Как видите, это расширяет обычное исключение Java. Проблема в том, что в WSDL, сгенерированном CXF, этот класс представлен следующим образом:
<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, почему это происходит сейчас?