2014-04-14 172 views
0

上添加攔截器,儘管我在文檔中搜索了它,似乎我錯過了一些東西。 我正在通過配置文件發佈Web服務。好的服務已經啓動並正在運行。 現在我試圖以編程方式添加一些自定義攔截器。假設我的 具有enpoint方法的主類稱爲TestImpl,而Web服務方法testWS()稱爲類。如果我想爲這項服務添加ingoing和輸出攔截器,我應該在哪裏做?在構造函數中?我會怎麼做?在哪個提供商?服務,端點,巴士,綁定?感謝您的幫助。以編程方式在服務器

現在我做

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

設置CXF支持總線,綁定和端點攔截。

當您調用serverFactoryBean.create()時,服務器已創建並開始營業。 在調用create方法之前,可以直接在serverFactoryBean上設置intercepter。

順便說一句,如果您使用的是ServerFactoryBean,則還需要設置地址和serviceClass()。

+0

你有沒有參考,我可以閱讀更多關於此的任何鏈接?我想完成的是將我的自定義攔截器以編程方式放入服務器服務中,但我還沒有找到完整且簡單的示例。 – alkis

+0

下面是一個例子,你可以看看http://cxf.apache.org/docs/a-simple-jax-ws-service.html。 –

+0

這是以編程方式發佈服務。我通過webapp的web.xml配置文件發佈它。如果我想以編程方式添加攔截器,我不得不以編程方式發佈服務? Upvoted因爲你部分回答了我的問題。請回答這個部分,我會接受你的評論。 – alkis