1
我從現有的WSDL構建Java中的Web服務。 wsimport
工具已生成綁定到服務模式中的元素的所有Java類。特別是,故障申報產生了以下類:如何擴展由WebFault註釋的wsimport生成的異常?
@javax.xml.ws.WebFault(name = "Fault", targetNamespace = "http://my.company.com/service-1")
public class ServiceFault extends java.lang.Exception {
// constructors and faulInfo getter
}
現在我想延長這一類,所以我可以添加更多的行爲:
public class MyServiceFault extends ServiceFault {
// some behavior
}
當我從現在扔MyServiceFault
實例我的應用程序,我希望這些錯誤能夠在SOAP答案中正確地序列化爲XML。但是,相反,我得到的是這樣的:
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
<env:Header/>
<env:Body>
<env:Fault>
<faultcode>env:Server</faultcode>
<faultstring>Some fault string.</faultstring>
</env:Fault>
</env:Body>
</env:Envelope>
也就是說,我完全錯過了faultInfo元素。我的SOAP堆棧將MyServiceFault
視爲任何其他異常,而不是表示服務中的故障的異常。
我以爲這是因爲@WebFault
註釋沒有被MyServiceFault
繼承,但是我在明確添加此註釋之後再次嘗試,但沒有成功。
任何想法我在做什麼錯在這裏?