3

そのように定義された 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 に入れません。なぜ今そうなったのですか?

4

0 に答える 0