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对象?有任何想法吗?
你好dursun,我仍然得到相同的错误“createNewUser已经抛出异常,现在展开”没有运气。顺便说一句,我是CXF的新手 – user1177489 2012-01-30 08:18:33
除了上面的内容外,是否还有其他注释? – user1177489 2012-01-30 11:46:31
好的。解决了,即使我已启动程序的拦截我福尔戈添加 CXF:功能> 这个片段cxf.xml文件和CXF没有登录传出的SOAPFault异常消息使我认为SOAPFault消息在遇到错误时不是由CXF生成的。 –
user1177489
2012-02-02 05:28:52