2011-08-19 62 views
0

背景:這是目前部署在本地GlassFish服務器上(此服務器也正在舉辦我的GWT 我創建了一個Web服務客戶端VoucherWebService(來自外部的Tomcat WSDL消耗)項目MyGWT)。如何添加Web服務客戶端GWT

我已經找到了GWT項目中調用VoucherWebService的一個方法是通過出口VoucherWebService作爲一個可執行的JAR,然後把它放置MyGWT - 無論是在構建路徑,並通過將其放在WEB-INF/lib目錄下。

問題: 上述方法有效。然而,VoucherWebService jar文件巨大和我得到的,我現在有GlassFish服務器上的重複資源的感覺(即VoucherWebService已經在服務器上運行 - 肯定有必須是連接MyGWT更簡單的方法與VoucherWebService)。我是否應該做其他事情(例如將自動生成的VoucherWebServiceEAR項目導出爲.EAR文件並使用它)?

+0

如果我的(最有可能的)不正確的動詞用法,慣例或一般網絡服務在整個問題上的無知使您尖叫,我會道歉。在網絡服務的世界裏,第一週一直沒有引導和困惑(我甚至不確定Web服務是我應該稱之爲的)。 – fjdutoit

回答

0

您應該能夠從任何地方調用webservice方法 - 不僅來自同一容器(服務器)上的不同應用程序,而且來自全球其他站點上的服務器(當然不考慮網絡問題;)),而不包括JAR你提到。

您是否嘗試將您的webservice方法用作標準的Java方法? (例如,將一些接口導入到您的代碼中,並以標準Java方式調用它的方法 - 我的意思是object.method())?如果是這樣,這是不恰當的使用web服務(在這種情況下,我們甚至不能使用'webservices'這個詞)。

+0

你說的是從不同的容器中調用Web服務是正確的(實際上我正在嘗試這麼做),我忘了添加客戶端這個詞 - 已經編輯了這個問題來反映這個問題。我創建了一個WS_client_,並且我試圖將GW_client_(與GWT項目在同一個容器上運行)添加到GWT項目中(我曾經/我的感覺是客戶端是web服務的接口)。我是否通過servlet向WS客戶端添加接口(通過將接口添加到web.xml?) – fjdutoit

+0

@fjudoit好吧,您已經擁有公開Web服務的應用程序(它可能在歐洲的某個服務器上運行)以及另一個GWT應用程序使用這些webservices(使用它們),它可能在非洲的某個服務器上。在這種情況下,你的GWT應用程序應該包含webservice客戶端JAR或者本身就是這樣的客戶端。我認爲你的問題是與web服務客戶端設計/庫引用部分 - 它應該是相對較小的應用程序。你在web服務客戶端應用程序中使用了一些特殊的框架嗎? –

+0

我正在使用Axis2。 WS客戶端的jar文件是40MB,也許它不是很大,但我期望的東西更小。我認爲你對「GWT ...成爲這樣的客戶本身」的建議是正確的。然後再次,非洲服務器也可能是我的問題:) – fjdutoit