我正在使用JAX-RS / Apache CXF和JSON开发客户端-服务器应用程序
我希望Apache CXF在两端透明地处理我的异常:这意味着将异常转换为 bean,使用我的 Jackson Serializer (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似乎很乐意忽略Exception上的注释并将其作为未知异常处理:500状态错误并且在服务器端没有生成响应体。
我必须在我的 Spring 上下文的“”服务器元素中配置一些特定的东西吗?我已经让 Spring 扫描我的 Exception/FaultBean 类(它甚至需要 BTW 吗?)。
如果您能指出一些工作示例,我将不胜感激。谢谢。