我知道我可以使用 @HandlerChain 将处理程序 (JAX WS) 添加到 SEI 我知道我可以像这样将拦截器(Apache CXF)添加到 SEI - http://web-gmazza.rhcloud.com/blog/entry/jaxwshandlers-to-cxfinterceptors
我知道我可以使用@HandlerChain 将处理程序添加到提供者接口(interface)- https://docs.oracle.com/middleware/1213/wls/WSGET/jax-ws-soaphandlers.htm#WSGET3461
问题是: 我可以,如果可以,如何(与 SEI 一样?)将拦截器添加到 Provider 接口(interface)?
最佳答案
好吧,我找到了这个具体问题的答案。你可以像这样添加拦截器
ProviderImpl implementor = new ProviderImpl();
JaxWsServerFactoryBean svrFactory = new JaxWsServerFactoryBean();
svrFactory.setAddress("http://localhost:9000/providerexample");
svrFactory.setServiceBean(implementor);
svrFactory.getInInterceptors().add(new LoggingInInterceptor());
svrFactory.getOutInterceptors().add(new LoggingOutInterceptor());
svrFactory.create();
但现在下一个问题:拦截器处理 SoapMessage(Apache CXF)。提供程序处理 SOAPMessage(JAXWS)。所以我可以让拦截器记录所有内容,但是当我尝试操作 SoapMessage 时,我遇到了麻烦。仍然不确定原因是这两个类的不兼容(或者框架是否负责相互转换)还是我在那里使用的特定代码。
编辑:拦截器没有问题,只是我犯了一些愚蠢的错误。
关于java - 将拦截器链添加到 JAX WS 提供程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30300914/