我目前正在面對使用Spring WS的錯誤代碼和消息的問題。如何使用Spring-WS將異常轉換爲返回碼?
爲了方便起見,我們使用帶有JAXB2綁定和@Endpoint和@PayloadRoot註釋的Spring WS 2.0。
我們的終點是這樣的:
@Endpoint
public class MyEndpoint() {
private static final String MY_NAMESPACE=...;
@PayloadRoot(namespace=MY_NAMESPACE, localPart="myPart")
public MyPartResponse handleMyPart(MyPart myPart) {
....
}
}
我們使用肥皂僅作爲圍繞POX消息的薄包裝,由XSD定義。這也意味着我們使用返回代碼和消息而不是故障。
每個響應從
<xs:complexType name="ResultBase">
<xs:sequence>
<xs:element name="errorCode" type="tns:ErrorCode" />
<xs:element name="errorMessage" type="xs:string" />
</xs:sequence>
</xs:complexType>
繼承並增加了一些細節在成功的情況下,這樣的:handleMyPart方法可以乾淨地映射內被拋出
<xs:element name="MySpecificResponse">
<xs:complexType>
<xs:complexContent>
<xs:extension base="tns:ResultBase">
<xs:sequence>
<xs:element name="mySpecificElement" type="tns:MySpecificType" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
所有的異常。
但是兩種類型的錯誤仍然未捕獲併產生故障,而不是一個明確的錯誤消息:
- XSD驗證錯誤
- 畸形XML錯誤
在一天結束的時候,這些是與使用Spring WS的每個POX webservice相關的問題。應該如何攔截這些異常並映射到響應對象上?
請記住:所有響應對象都略有不同,因爲它們都是從普通對象繼承而來,但爲其添加了一些獨特的可選內容。是的運作良好,我
我只是提出了關於Spring-WS吉拉功能要求:HTTPS:/ /jira.springframework.org/browse/SWS-657 – 2010-11-18 12:33:29