Java Ws-Catch拦截器错误

Java Ws-Catch拦截器错误,java,web-services,jboss,cxf,Java,Web Services,Jboss,Cxf,我正在尝试捕获web服务错误,但也无法捕获,如何捕获此错误? 请注意,我使用的是JavaWS(不是Spring)和JBoss 11:19:54,457 WARNING [org.apache.cxf.phase.PhaseInterceptorChain] (http--0.0.0.0-8080-1) Interceptor for {http://services.com/}OppService#{http: //services.com/}getopp has thrown excepti

我正在尝试捕获web服务错误,但也无法捕获,如何捕获此错误? 请注意,我使用的是JavaWS(不是Spring)和JBoss

11:19:54,457 WARNING [org.apache.cxf.phase.PhaseInterceptorChain] 
(http--0.0.0.0-8080-1) Interceptor for {http://services.com/}OppService#{http:
//services.com/}getopp has thrown exception, unwinding now:
org.apache.cxf.interceptor.Fault: Unmarshalling Error: Not a number: asdas 
如果我发送了一个数字,一切都正常,但我希望代码中断,以便捕获错误,问题是我似乎无法捕获错误,因为它既没有到达java代码,也没有到达处理程序。错误甚至在处理程序之前出现

请注意,我正在使用Java注释来构建wsdl,请看一看。根据文件:

接收验证警告或错误的通知。这个 ValidationEvent将在其中嵌入一个ValidationEventLocator 指示错误或警告发生的位置。如果未选中运行时 如果此方法引发异常,JAXB提供程序将处理它 就像该方法返回false并中断当前解组一样, 验证或封送操作

因此,基本上您需要做的是扩展该类,重写handleEvent(ValidationEvent事件)方法并检查例如:

if (event.getSeverity() == ValidationEvent.WARNING) {
    return super.handleEvent(event);
} else {
    throw new RuntimeException("build your own message.");
}

我创建了一个类,并按照您所说的对其进行了扩展,并添加了一个断点,但遗憾的是,它并没有失效。您如何公开您的端点?你在用弹簧吗?为了调用它,您必须使用JavaWebService和webmethod注释在server-side.am的jax ws属性中注册处理程序,他们正在做所有暴露端点的工作,还有其他工作。。。不,我没有使用spring,我刚刚意识到我的HeaderHandler正在被调用,我以为不是。defaulyValidationEventHandler仍不工作。我曾经