我有兩個在WebSphere 8.5.5上運行的舊Web服務。 稱他們爲serviceOne和serviceTwo。 ServiceOne正在調用serviceTwo。 要做到這一點,serviceOne ear包含serviceTwo客戶端。 我們需要驗證serviceTwo。我們試圖使用PolicySets/Bindings來配置用戶名和密碼,並讓serviceTwoClient將它們傳遞給serviceTwo提供者。將Web服務客戶端與其他服務websphere一起打包
它們打包,現在的方式是:
-- serviceOne.ear
|
-- serviceOneEJB.jar
| |
| -- serviceTwoClient.jar
-- serviceOneWeb.war
我們的問題是,爲了包裝serviceOne耳朵的WebSphere,以檢測其中的serviceTwo客戶端,並在服務列表中它 - >客戶端提供商所以我們可以附加PolicySet。
在當前的打包方案中,serviceTwo客戶端未被檢測到。
所以我試着拉動ear文件的根級別的serviceTwoClient.jar。這沒有幫助,serviceTwo客戶端未在客戶端提供商下列出。
然後我嘗試將serviceTwo客戶端打包爲一個war文件並將其打包在耳朵的頂層。這有助於客戶在管理控制檯上列出客戶端提供商;但我有兩種選擇: - 保留與serviceOneEJB打包在一起的舊jar文件。在這種情況下,服務調用可以正常工作,但是policyBindings不會將驗證信息與請求一起發送。我想這是因爲實際的調用通過jar並且不會調用war,並且不會調用policyBinding。 - 從serviceOneEJB.jar中刪除舊的jar。在這種情況下,服務調用失敗,因爲應用程序上下文未正確加載(實際上爲空)。
任何幫助/想法,非常感謝。
如果您使用EJB模塊打包客戶端,我假定您正在從EJB調用它。你有沒有嘗試把'@ WebServiceRef'放入bean中,看看它是否可見呢? – Gas