3

我有一个这样定义的 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,为什么现在会发生?

4

0 回答 0