eclipse europa自带web工具。我们可以使他生成动态web程序。但是在默认情况下,生成的动态默认程序是不包含web service相关依赖的。因此
在生成工程的时候,在Projet Facets对话框步骤勾选Axis2 Web Service 选项
即可生成具有web service相关依赖的工程。
当生成后,也许会使自己有些失望,“怎么会报错呢?”。如果你真的遇到了,那你就又可以长一些知识了。因为eclipse并没有带Axis的本身。因此我们需要下载axis,并使eclipse的webservice设置与之联系。我下载的是axis2 1.4版本。解压到自己希望的目录,然后
菜单“Windows”---->“Preferences...”--->产开左边 “Web Service”节点--->选择“Axis2 Preferences”项目--->在右侧“Axis2 Runtime”标签下设定Axis2 Runtime Location
在上面设置我们刚下载并解压的axis2 1.4就可以了。
经过上面的步骤,我们便知道怎样成功的建立一个带有web service相关依赖的动态web项目。等我们建立了一个项目以后,我们就可以试着写一个java类,并把它发布成web service。如写类如下:
package test;
public class HelloWorld {
public String hello(String name) {
return name + "说:你好世界";
}
}
那么到底怎么发布他呢。如果你看了axis的相关文档,上面介绍了n多方式。如果没有耐心的话,肯定会看糊涂的。还好我们用工具就是为了方便。不妨右键单击刚才写的HelloWorld类试试(在Java EE试图下)。你可以找到“Web Services”选项并在它的字菜单中,点选Create Web service。好了,按照对话框向导和你的意图,你也许会认为会很顺利的完成。但结果可能不是那样的。你极有可能遇到一个代号为IWAB0489E的异常。具体如下
IWAB0489E Error when deploying Web service to Axis runtime axis-admin failed with {http://schemas.xmlsoap.org/soap/envelope/}Client The service cannot be found for the endpoint reference (EPR) http://localhost:8080/WebServiceTest/services/AdminService |
不要气馁,我也遇到了,而且在网上查找资料的时候,发现很多老外也遇到了。大概是这个工具国人用的不多,资料鲜有。而且一些境外的英文技术论坛上说的也是乱七八糟的。我也不在这多说,直接说解决办法
在生成webservice的第一个对话框中点选Confingration下面的链接--->在弹出的对话框中点选“Apache Axis2”--->点ok回到远对话框后勾选“Publish the Web service”,“Monitor the Web services”选项
好了,现在知道出现异常的原因了吧,就是eclipse默认按照axis的规则,而不是axis2的规则生成。而我们用的是axis2。第二个箭头后面的是让你在生成web service后就直接发布了,并且可以使我们的监视程序监测到它。
好了,基本上按照eclipse的向导一直往下走,也就不会出什么问题了。当发布完了,相信我们的服务器是打开着的,这时可以在浏览器里试试我们的发布是否成功,
登陆(注意WebsServiceTest是我建的动态web工程名字 )
http://localhost:8080/WebServiceTest/services/listServices 看是否监测程序已经监测到了我们刚写的Hello World web 服务。
登陆
http://localhost:8080/WebServiceTest/services/HelloWorld?wsdl 看生成的wsdl内容。
登陆
http://localhost:8080/WebServiceTest/services/HelloWorld/hello?name=zhangyt 看我们的web service返回的信息。这时会开到内容如下
这是很激动人心的,因为这个测试发现我们的web service在工作了,而且返回了我们想要的东西。
好了,我的这个叙述其实可以说只是突出了应用eclipse写web服务的入门注意点。其实就是说工具怎么使用。会用工具写web service,并不一定真正理解之。相信很多人如果一离开eclipse,将有很多事情不能做。所以,有些功课是要在应用以外的时间做好的。要知其所以然,就要参阅这方面的相关资料了。
转自:http://yangzb.iteye.com/blog/327016