如何使用spring-ws记录未处理的异常

时间:2013-09-02 01:49:30

标签: java spring web-services spring-ws error-logging

spring web services(spring-ws)有一个默认的SimpleSoapExceptionResolver,它会将任何未处理的异常作为SOAP错误返回给客户端。这很好。

但是,我还希望它在服务器上记录异常,以便我们可以看到支持该服务。

SimpleSoapExceptionResolver通过AbstractEndpointExceptionResolver有一个属性,可以设置为启用日志记录(setWarnLogCategory)。

如何处理框架为了设置warnLogCategory属性而创建的SimpleSoapExceptionResolver实例?

谢谢, 丹。

2 个答案:

答案 0 :(得分:2)

reference documentation说:

  

端点异常解析器由。自动拾取   MessageDispatcher,因此不需要显式配置。

所以只需实例化该类并设置属性:

<bean id="exceptionResolver" class="org.springframework.ws.soap.server.endpoint.SimpleSoapExceptionResolver">
  <property name="warnLogCategory" value="com.mycompany.category"/>
</bean>

答案 1 :(得分:1)

这是一种可能性,使用容器注入在单个使用bean中获取句柄

必须有一种方法可以在不创建java类的情况下完成它的唯一目的是配置一个spring bean。

  @Named public class ConfigurationBean {

     @Inject SoapFaultAnnotationExceptionResolver resolver;

  @PostConstruct public void initialise() {
     resolver.setWarnLogCategory("Dingbats"); 
  }
}