2010-02-10 107 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