Java Ws-Catch拦截器错误
我正在尝试捕获web服务错误,但也无法捕获,如何捕获此错误? 请注意,我使用的是JavaWS(不是Spring)和JBossJava 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
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仍不工作。我曾经