用MyEclipse86编写简单的WebService实例.docx
《用MyEclipse86编写简单的WebService实例.docx》由会员分享,可在线阅读,更多相关《用MyEclipse86编写简单的WebService实例.docx(11页珍藏版)》请在冰点文库上搜索。
用MyEclipse86编写简单的WebService实例
本文主要讲解如何使用MyEclipse8.6集成的xfire构建WebService,并构建一个客服端去访问。
1.新建webServiceProject工程,File->new->WebServiceProject,弹出如下的对话框:
图1
2.在ProjectName中填写“MyWebService”,在Framework中选择“XFire”。
图2
3.点击next后选择默认
图3
4点击Finish后,自动生成web.xml配置文件,这个是tomcat服务器的配置文件,这个自动生成的文件的作用就是服务器告诉所有访问路径http:
//127.0.0.1:
8080/MyService/services/*的请求全部交给org.codehaus.xfire.transport.http.XFireConfigurableServlet去处理。
5.新建一个webservice的服务端,File->new->other->MyEclipse->WebServices->WebService【如果要暴露多个服务一下步骤重复就可】
图4
图5
6.在Strategy中,选择第二个同时把复选框选上
图6
7.点击next,输入服务类名MyService,新建一个包名com.server
图7
8.点击finish,在包server下自动生成一个接口类IMyService和一个实现类MyServiceImpl,在WebService文件下自动生成services.xml【这个xml的意思就是对发布的web服务接口的描述】
图8
9.部署这个webservice到tomcat上,其实只要驱动tomcat即可,选择MyWebService右击,在出现的选项中选择“RunAs”,“3MyEclipseServerApplication”。
10.在浏览器中输入:
http:
//127.0.0.1:
8080/MyWebService/services【默认端口是8080,这边列出了所有可以得到的服务方法和相应的wsdl】这边就说明服务端已经成功部署了,点击wsdl如下:
图9
图10
11.接着我们新建一个客服端访问这个服务。
新建一个java类,这个java类可以在任意的工程中,不一定要在本工程中。
File->New->Other...,出现如下的对话框:
图11
点击Next,出现如下的对话框,填写的信息如下所示:
图12
输入如下代码:
这边为了能够查看soap报文添加了调试信息
packageorg.client;
import.MalformedURLException;
import.URL;
importorg.codehaus.xfire.client.Client;
publicclassMyClient{
publicstaticvoidmain(String[]args)throwsMalformedURLException,
Exception{
Clientclient=newClient(new
URL("http:
//localhost:
8080/MyWebService/services/MyService?
wsdl"));//这个会根据相应的wsdl秒速构想相应的客服端
client.addInHandler(neworg.codehaus.xfire.util.dom.DOMInHandler());
client.addOutHandler(neworg.codehaus.xfire.util.dom.DOMOutHandler());
client.addFaultHandler(neworg.codehaus.xfire.util.dom.DOMOutHandler());
client.addInHandler(neworg.codehaus.xfire.util.LoggingHandler());
client.addOutHandler(neworg.codehaus.xfire.util.LoggingHandler());
client.addFaultHandler(neworg.codehaus.xfire.util.LoggingHandler());
Object[]results=client.invoke("example",newObject[]{"Betterlatethannever."});//这边调用wsdl描述中的example方法,同时传递参数“Betterlatethannever.”
System.out.println(results[0]);//这边输出
}
}
12.注意如果没有Client的库,通过Project->Properties->JavaBuildPath->AddLibrary->MyEclipseLibraries->XFire1.2HTTPClientLibraries,添加进来:
图13
13.运行的结果如下图所示:
图14