我開發與JAX-RS /阿帕奇CXF,JSON通過@WebFault註釋
我想的Apache CXF到客戶端 - 服務器應用程序映射在JAX-RS的自定義異常在兩端透明地處理我的異常:這意味着將異常轉換爲一個bean,用我的Jackson串行器(JSON)序列化它,然後在客戶端進行過濾。
我已經看到了關於這個問題的一些令人困惑的帖子/解答和使用@WebFault註解上來:
@WebFault(name=CODE, faultBean="foo.bar.FaultBean")
public class DuplicateRuleNameFault extends Exception {
static final public String CODE = "DUPLICATE_RULE_NAME";
private FaultBean faultBean;
public DuplicateRuleNameFault(String msg) {
super(msg);
this.faultBean = new FaultBean(msg);
}
public DuplicateRuleNameFault() {
}
public FaultBean getFaultBean() {
return faultBean;
}
public void setFaultBean(FaultBean faultBean) {
this.faultBean = faultBean;
}
}
沒有成功。目前,CXF似乎高興地忽視異常的註解並將其作爲未知異常處理:在服務器端生成500個狀態錯誤和沒有響應主體。
在我的Spring上下文的「」服務器元素中是否有特定的東西需要配置?我已經有Spring掃描我的Exception/FaultBean類(它甚至需要BTW?)。
如果你能指點我一些工作的例子,我將不勝感激。 謝謝。
可以請你分享你是怎麼做到的解決方案...我面臨着同樣的問題:( – vashishth
我們切換到「功能異常」: 我們有cserver側的異常映射器,在建立自定義的JSON一個例外。 然後,在客戶端,我使用inInterceptor解組JSON並拋出一個異常,它對應於一個錯誤。 –