2010-02-10 121 views
0

這是一個場景:動態生成webservice - 如何?

我有一個webservice,我們把這個StockQuoteService部署在tomcat(axis)上。 有這種方法getStockQuote()暴露通過這個web服務。

現在,我想構建一個GUI工具,它可以即時構建一個名爲StockQuoteServiceEx的web服務。新的webservice將公開與StockQuoteService相同的方法。但是,當在StockQuoteServiceEx上調用getStockQuote()時,此方法就像webservices客戶端,從而在StockQuoteService上調用getStockQuote(),從中獲取結果。這樣做的目的是操縱(數據屏蔽/混洗/加密)原始結果。

生成web服務後,現有客戶端會將StockQuoteService的端點更新爲StockQuoteServiceEx。所以,這裏的問題是,動態生成Web服務的步驟是什麼?

回答

1

由於您願意公開相同的Web服務接口/操作:讓您的GUI工具充當HTTP代理並將該工具放置在客戶端和實際的Web服務之間不是更容易嗎? Like:

客戶端==> GUI工具(http代理)==> StockQuoteService。

這種方式客戶端是針對實際StockQuoteService的WSDL構建的,但是可以利用GUI工具的端點地址。您可以在GUI工具中將HTTP代理實現爲一個簡單的Servlet,該Servlet使用Apache HTTPClient將請求(在操作之後)分派到實際的webservice。

+0

我會乞求不同。首先,通過讓http代理充當中間人,客戶端需要更改代碼(如果我使用的是webservices客戶端,那麼現在需要了解與http代理的交談情況?)其次,如果我要做它在客戶端環境中,他們不會喜歡額外的http代理服務器的想法? – Jay 2010-02-10 11:44:01

+0

有效地需要什麼是自頂向下的Web服務。在這種情況下,通常在IDE的幫助下生成的java bean骨架需要使用調用另一個webservice並根據配置文件操作結果的代碼來生成。 – Jay 2010-02-10 11:46:02