Java SOAP响应出现错误而不引发异常
我需要修改用JAVA编写的现有web服务。 web服务执行一些输入验证,例如,当数字的输入无效时,它抛出NumberFormatException 这将导致用户收到错误消息,这是正确的。 但是,由于我们使用log4j,异常会作为错误记录在日志文件中,这是不需要的 我的问题是: 如何返回SoapFault而不引发异常? 我认为这将向用户返回一个错误,但不会将错误作为错误记录在日志文件中。Java SOAP响应出现错误而不引发异常,java,web-services,soap,log4j,Java,Web Services,Soap,Log4j,我需要修改用JAVA编写的现有web服务。 web服务执行一些输入验证,例如,当数字的输入无效时,它抛出NumberFormatException 这将导致用户收到错误消息,这是正确的。 但是,由于我们使用log4j,异常会作为错误记录在日志文件中,这是不需要的 我的问题是: 如何返回SoapFault而不引发异常? 我认为这将向用户返回一个错误,但不会将错误作为错误记录在日志文件中。 如果这不可能。如何将log4j配置为不记录某些异常?您可以将数字解析包装在try\catch块中,捕获Numb
如果这不可能。如何将log4j配置为不记录某些异常?您可以将数字解析包装在try\catch块中,捕获NumberFormatException。它不会传播到其他任何地方,在catch块中,您只需返回SoapFault
int value;
try{
value = Integer.parseInt(valueString);
}
catch(NumberFormatException e){
value = 0;
return SoapFault;
}
返回null并不能解决我的问题,因此我创建了一个自定义异常,并在log4j.xml中排除了该类:
<category name="My.Company.DoNotLogException">
<priority value="off" />
</category>
现在用户仍然会收到一个错误,但该错误不再显示在我的日志中
谢谢大家的帮助。您使用的是哪种web服务框架?您可以共享一些代码吗?尝试捕获NumberFormatException并重新抛出SOAPFault。但是,我们需要知道您在使用什么(AXIS2?),我们没有使用AXIS2。我想是JWS。我看到import javax.jws.WebService;我尝试返回SOAPFault,但这不起作用,因为我的方法要求返回字符串。@PaulMeems我不是J2EE专家,但可能没有其他方法-为了获得SOAPFault,您需要抛出某种类型的异常?@PaulMeems确定如果您需要返回字符串,哪个字符串对应于欠终止值?你能直接返回空值吗?