我們正在研究一個項目,我們正在使用CXF框架提供的JaxWSProxyFactoryBean來調用webservices。 我正在使用SPRING配置來創建客戶端,而不是直接在代碼中使用API。 我也在設置maintain_session屬性來確保會話由WS客戶端維護。JaxWSProxyFactoryBean共享HTTP會話
< JAXWS:客戶端ID = 「userAuthenticationServiceClient1」 地址= 「$ {} application.deployment.url/UserAuthentication」 服務類= 「com.authentication.webservice.IUserAuthenticationService」 抽象= 「真」 > < JAXWS:性能> <輸入鍵= 「javax.xml.ws.session.maintain」 > <值類型= 「java.lang.Boolean的」 >真< /值> < /條目> </JAXWS:屬性> </jaxws:客戶端>
但我發現會話不是跨各種web服務實例維護的。 爲了更清楚 如果有像wc1,wc2,wc3這樣的代理客戶端。在wc1上調用的所有操作都將有其會話,而wc2將創建新會話。 有人可以讓我知道我需要做什麼設置,以便所有的ws客戶端將共享會話嗎?
嘿丹尼爾,謝謝你回覆我的帖子。但它不可能使用上面的API,因爲我已經提到我正在使用SPRING託管的bean。由於由jaxws:client創建的實例被注入,我創建的任何類都不知道它們是否調用任何Web服務。我想有一個通用的方式來做到這一點,而不需要讓我的課程知道他們住在哪裏:) – CuriousMind 2009-11-17 03:14:32
啊。在這種情況下,我唯一能想到的是編寫一對攔截器來做到這一點。一個「In」攔截器,用於記錄所有會話cookie和一個「Out」以添加/更新會話cookie。配置所有的東西。 –
2009-11-17 19:05:10