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);