我当前正在开发一个基于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消息,则必须创建它。我不希望容器知道您需要什么。

我想说您的设计是足够的。我要提出的一种批评是,您无法具体说明错误的性质。

10-01 14:40