我试图调整基于cxf的Web服务。通过激活日志记录,我遇到了以下几行:
2016-05-19 16:33:37,956;DEBUG;org.apache.cxf.phase.PhaseInterceptorChain;Invoking handleMessage on interceptor org.apache.cxf.wsdl.interceptors.WrappedOutInterceptor@384d0499
2016-05-19 16:33:37,956;DEBUG;org.apache.cxf.phase.PhaseInterceptorChain;Invoking handleMessage on interceptor org.apache.cxf.wsdl.interceptors.BareOutInterceptor@78c615ba
2016-05-19 16:33:37,956;DEBUG;org.apache.cxf.ws.addressing.ContextUtils;retrieving MAPs from context property javax.xml.ws.addressing.context.inbound
2016-05-19 16:33:37,957;DEBUG;org.apache.cxf.ws.addressing.ContextUtils;WS-Addressing - failed to retrieve Message Addressing Properties from context
2016-05-19 16:33:37,976;DEBUG;org.apache.cxf.phase.PhaseInterceptorChain;Invoking handleMessage on interceptor org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor$SoapOutEndingInterceptor@10bed1a8
在第4行和第5行之间需要19毫秒,这大约是整个请求时间的20%。所以我的问题是:是什么导致这种差距?我怎么能避免这种情况? 日志说WS-Addressing失败了。我可以禁用WS-Addressing吗?
更新
我使用CXFNonSpringServlet并使用以下行来设置服务:
EndpointImpl endpoint = new EndpointImpl(bus, impl);
endpoint.setWsdlLocation("...");
endpoint.setAddress("...");
endpoint.setServiceName(new QName("..."));
endpoint.setEndpointName(new QName("..."));
endpoint.publish();