我正在尝试使用JSP和Servlets开发一个非常简单的Java Web应用程序。
1)页面上有一个文本框和一个提交按钮,
2)用户在文本框中输入他的名字,比如John,然后点击按钮,
3)字符串被转发到我的servlet,
4)在我的servlet的doPost方法中,我访问发布的字符串变量,
5)我将使用的Web服务有一个sayHello
方法,该方法接受一个参数并返回与参数连接的"Hello "
,
6)因此,我调用Web服务的sayHello
方法,获取返回的变量并将其转发给基本上写Hello John
的JSP。
我熟悉JSP和Servlet的事情,但我不知道如何使用现有的Web服务,或者如何使用已经在该Web服务中实现的功能。
我所拥有的只是方法的名称,sayHello
,网络服务的网址,http://example.com/hello_service
以及指向wsdl
文件的链接,其中包含类似xml的代码不知道如何利用。
我的问题是,如何使用该Web服务,或者如何在servlet中调用方法?
提前致谢。
答案 0 :(得分:5)
我正在使用Eclipse for JavaEE Developers。如何自动生成客户端?
将WSDL文件放入动态Web项目中(或为其创建一个新项目),右键单击它,选择 Web Services>生成客户端,使用默认设置完成向导。将创建一个新包,其中放置了生成的WSDL客户端代码。其中一个类在类名中有ServiceLocator
。
在servlet中,您需要实例化ServiceLocator
类,从中获取SOAP服务,然后在其上调用所需的方法。由于WSDL未知,因此无法提供更多详细信息。
答案 1 :(得分:0)
您可以使用jax-ws中的“wsimport”为Web服务生成客户端jar。然后,在类路径中包含客户端jar,您可以像调用任何常规方法一样调用Web服务。
答案 2 :(得分:0)
您必须创建客户端存根,这些存根将成为您的代码项目(具有servlet)的一部分。 WSDL定义了如何生成这些存根。您可以从servlet中调用存根中的方法。您可以使用各种工具生成这些存根,Axis2是使用最广泛的工具之一。
Here是apache Axis2文档,它告诉您如何操作。
此存根将具有wsdl已定义的方法。您基本上将调用这些方法,并在内部执行存根实现(由axis2从wsdl自动生成)将根据您传递给方法的参数创建SOAP请求。然后,它将通过HTTP或HTTPS将此请求发送到Web服务URL。您会觉得您正在调用驻留在您计算机上的代码,但在内部它会调用远程Web服务。