3

从 CXF POJO 服务获取 http 标头的正确方法是什么?

我有以下代码,但它不起作用:

ServerFactoryBean svrFactory = new ServerFactoryBean();
svrFactory.setServiceClass(TestService.class);
svrFactory.setAddress("http://localhost:8080/test");
svrFactory.getServiceFactory().setDataBinding(new AegisDatabinding());
svrFactory.create();

public class TestService {

    protected javax.xml.ws.WebServiceContext wsContext;

    public void someMethod() {
       // the problem is that wsContext.getMessageContext() is null
    }
}

谢谢!

4

1 回答 1

6

您需要在 wsContext 变量上添加一个@Resource,并切换到使用 JaxWsServerFactoryBean。

或者,使用:

PhaseInterceptorChain.getCurrentMessage()

获取当前的 CXF 内部消息并从那里获取标题。

于 2010-05-20T22:01:44.917 回答