soap webservices - 返回错误消息?

时间:2012-08-09 22:33:49

标签: java web-services java-ee soap

我有一个小肥皂网络服务。我想知道如何回答错误。

例如:

public int createUser(String username) {
   //create...
   return id;
}

现在,如果无法创建用户,我该如何做出正确的回复?我是否必须抛出自定义异常?哪种方法正确?

3 个答案:

答案 0 :(得分:1)

这里的正确方法是将例外转换为SOAP Fault

答案 1 :(得分:0)

我的经验是,我们创建了一个与数据类一起返回的公共类。因此,例如,soap响应返回CommonOut对象和ResultData对象。 CommonOut类包含填充数据的字段,无论请求是好还是坏,例如Status,Records Returned和Message。

拦截器用于捕获容器中的所有异常,并以自定义格式包装它们并返回给用户。这样你就可以捕获真正的异常消息并以自己的格式包装它们。

将实际错误消息返回给调用者的危险在于它可能会暴露有关系统的详细信息,除非您捕获异常并覆盖返回的值。

这类似于上面提到的SOAP错误,但是您可以更自如地定制输出格式。

答案 2 :(得分:0)

我在我的SOAP服务器中执行此操作 - 但是不要试图构建自己的Soap错误 - 只是抛出运行时异常并且应该转换为soap错误。