我们公司正在努力完成Maven项目(jboss 7.1.1, java 7)的一个需求。我们有一个公开了几个方法的soap web服务。这些方法抛出异常。异常在该项目的依赖项中声明。问题是我们不能在soap响应中发送任何关于我们在webservice方法中抛出的异常类型的信息。所有的肥皂带来的是
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<soap:Fault>
<faultcode>soap:Server</faultcode>
<faultstring>MESSAGE</faultstring>
</soap:Fault>
</soap:Body>
</soap:Envelope>
正在使用我们服务的客户端无法分辨他们得到的是哪种错误。我们如何克服这个问题?我们如何在soap体中发送关于我们正在抛出的特定异常的相关信息?
我们例外
@WebFault
public class OurException extends Exception
{
public OurException (){
super();
}
public OurException (String message)
{
super(message);
}
}
非常感谢,佩德罗·费雷拉
您可以将异常转换为所需的响应类型,并拥有包含有关错误信息的属性,或者您可以利用包含setDetail(元素细节)方法的cxf SoapFault类。这样,您就可以构造自己的xml元素并将其注入SoapFault。
希望有帮助!