2012-01-30 62 views
2

我正在用CXF 2.3.3開發SOAP Web服務。我想在用戶提交錯誤數據時拋出一個自定義異常。我的異常類看起來像這樣。CXF - 自定義異常未被CXF捕獲

@WebFault(name="InvalidUserDataException", targetNamespace="http://foo.bar.com/") 
@XmlAccessorType(XmlAccessType.FIELD) 
public class InvalidUserDataException extends RuntimeException { 

public InvalidUserDataException(){ 
    super(); 
} 

    String validationErrors; 

} 

在我的方法實現類我故意拋出此異常,看的SOAPFault異常是否是由CXF返回到客戶端,但無論我做任何同樣的錯誤,這些類別的結果:createNewUser已經拋出異常,現在展開。

請注意,WSUserRegistration接口還聲明自己createNewUser方法會引發InvalidUserDataException。

public class WSUserRegistrationImpl implements WSUserRegistration { 

@Autowired 
IWSUserValidationProxy validationProxyImpl; 

@Override 
public int createNewUser(RegistrationInputProperty registrationInfo) throws InvalidUserDataException { 

    if (true) { 
     throw new InvalidUserDataException(); 
    } 
    return 1; 
} 

}

我的目標是趕上從SOAPFaultOutInterceptor此異常,並返回一個定製faultDetail。

如何讓CXF捕獲此錯誤並返回SOAPFault對象?有任何想法嗎?

回答

0
+0

你好dursun,我仍然得到相同的錯誤「createNewUser已經拋出異常,現在展開」沒有運氣。順便說一句,我是CXF的新手 – user1177489 2012-01-30 08:18:33

+0

除了上面的內容外,是否還有其他註釋? – user1177489 2012-01-30 11:46:31

+0

好的。解決了,即使我已啓動程序的攔截我福爾戈添加 這個片段cxf.xml文件和CXF沒有登錄傳出的SOAPFault異常消息使我認爲SOAPFault消息在遇到錯誤時不是由CXF生成的。 – user1177489 2012-02-02 05:28:52