在服务器上以编程方式添加拦截器

时间:2014-04-14 15:59:02

标签: java web-services soap cxf interceptor

虽然我在文档中搜索过但似乎我遗漏了一些东西。 我正在通过配置文件发布Web服务。好的,服务已启动并正在运行。 现在我试图以编程方式添加一些自定义拦截器。让我们说这是我的班级 具有enpoint方法的主类称为TestImpl,Web服务方法称为testWS()。如果我想为这项服务添加输入和输出拦截器,我应该在哪里这样做?在构造函数中?我该怎么办?在哪个提供商?服务,端点,总线,绑定?谢谢你的帮助。

现在我正在做

    ServerFactoryBean serverFactoryBean = new ServerFactoryBean();

    Server server = serverFactoryBean.create();

    server.getEndpoint().getOutInterceptors().add(new CustomLoggingInInterceptor());
    server.getEndpoint().getOutInterceptors().add(new CustomLoggingOutInterceptor());   

在我的类的构造函数中,但我在Server server = serverFactoryBean.create();

中收到NullPointerException

1 个答案:

答案 0 :(得分:1)

CXF支持从总线,绑定和端点设置拦截器。

当您调用serverFactoryBean.create()时,将创建服务器并为业务开放。 您可以在调用create方法之前直接在serverFactoryBean上设置intercepter。

顺便说一句,如果您使用ServerFactoryBean,还需要设置地址和serviceClass()。