SOAP响应错误而不抛出异常

时间:2012-11-15 10:21:03

标签: java web-services soap log4j

我需要更改用JAVA编写的现有Web服务。 Web服务执行一些输入验证,例如,当一个数字的输入无效时,它会抛出NumberFormatException。

这会导致用户出现错误消息,这是正确的。 但是因为我们使用log4j,异常会在日志文件中记录为错误,这是不需要的。

我的问题是: 如何在不抛出异常的情况下返回SoapFault? 我认为这会向用户返回错误,但不会将错误记录为日志文件中的错误。 如果这是不可能的。如何配置log4j以不记录某些异常?

2 个答案:

答案 0 :(得分:0)

您可以将数字解析包装在try \ catch块中,捕获NumberFormatException。它不会传播到其他任何地方,并且在catch块中你可以返回SoapFault。

int value;
try{
    value = Integer.parseInt(valueString);
}
catch(NumberFormatException e){
    value = 0;
    return SoapFault;
}

答案 1 :(得分:0)

返回null并没有解决我的问题所以我创建了一个自定义异常并在我的log4j.xml中排除了该类:

<category name="My.Company.DoNotLogException">
  <priority value="off" />
</category>        

现在用户仍然收到错误,但错误不再出现在我的日志中。

感谢所有人帮助我。