CXF 在拦截器中获取对服务对象的引用
CXF In interceptor get reference to service object
我正在扩展 AbstractPhaseInterceptor
,我想在 INVOKE 或 PRE_INVOKE 阶段获取 JAXWS Web 服务对象。我该怎么做?
为了清楚起见,我需要获取对实现 Web 服务方法的对象的引用,因此:
@网络服务(...)
public class ExampleWebService
{
@WebMethod(...)
public void doSomething(...)
{
}
}
public class 我的拦截器
扩展 AbstractPhaseInterceptor
{
public 我的拦截器()
{
超级(Phase.INVOKE);
}
@覆盖
public void handleMessage(消息消息)
抛出故障
{
ExampleWebService serviceObject = getServiceObject(message);
}
私有静态 ExampleWebService getServiceObject(消息消息)
{
// 我该如何实现呢?
}
}
我没有测试代码,但类似的东西可能有效。
import org.apache.cxf.endpoint.Server;
import org.apache.cxf.frontend.ServerFactoryBean;
...
Server server = serverFactoryBean.create();
MyInterceptor myInterceptor = new MyInterceptor(server.getEndpoint());
server.getEndpoint().getInInterceptor().add(myInterceptor);
我正在扩展 AbstractPhaseInterceptor
,我想在 INVOKE 或 PRE_INVOKE 阶段获取 JAXWS Web 服务对象。我该怎么做?
为了清楚起见,我需要获取对实现 Web 服务方法的对象的引用,因此:
@网络服务(...) public class ExampleWebService { @WebMethod(...) public void doSomething(...) { } } public class 我的拦截器 扩展 AbstractPhaseInterceptor{ public 我的拦截器() { 超级(Phase.INVOKE); } @覆盖 public void handleMessage(消息消息) 抛出故障 { ExampleWebService serviceObject = getServiceObject(message); } 私有静态 ExampleWebService getServiceObject(消息消息) { // 我该如何实现呢? } }
我没有测试代码,但类似的东西可能有效。
import org.apache.cxf.endpoint.Server;
import org.apache.cxf.frontend.ServerFactoryBean;
...
Server server = serverFactoryBean.create();
MyInterceptor myInterceptor = new MyInterceptor(server.getEndpoint());
server.getEndpoint().getInInterceptor().add(myInterceptor);