我当前正在开发一个基于EJB3的SOAP Web服务,我想知道什么是处理未捕获的异常并将格式正确的SOAP响应返回给客户端的最佳实践。
例:
@WebMethod
public SomeResponse processSomeService(
@WebParam(name = "someParameters") SomeParameters someParameters)
{
// the EJB do something with the parameters
// and retrieve a response fot the client
SomeResponse theResponse = this.doSomething(someParameters);
return theResponse;
}
我是否必须捕获通用异常,例如:
@WebMethod
public SomeResponse processSomeService(
@WebParam(name = "someParameters") SomeParameters someParameters)
{
// the EJB do something with the parameters
// and retrieve a response to return to the client
try
{
SomeResponse theResponse = this.doSomething(someParameters);
}
catch (Exception ex)
{
// log the exception
logger.log(Level.SEVERE, "something is going wrong {0}", ex.getMessage());
// get a generic error response not to let the
// technical reason going to the client
SomeResponse theResponse = SomeResponse.createError();
}
return theResponse;
}
为了达到这个目的,是否有某种“最佳实践”?
谢谢
最佳答案
如果要在发生错误的情况下返回SOAP消息,则必须创建它。我不希望容器知道您需要什么。
我想说您的设计是足够的。我要提出的一种批评是,您无法具体说明错误的性质。