我们在做系统集成时,经常会需要调用webservice接口,本文将讲解在myeclipse中建立一个webservice项目,编写接口和实现类,并且发布webservice,最后在myeclipse中建立客户端调用发布的webservice接口,并且对接口进行测试。本文在结束时提供了测试中使用到的所有源代码。
友情提示,本文使用的工具为myeclipse 8.5。
1、第一步,在myeclipse中建立一个webservice项目。
输入项目名为WebService,选择XFire,如下图所示。
选择Next,如下图
再选择Next,如下图。
最后点击Finish,就建立好了一个WebService项目。
2、编写接口HelloService和接口实现类HelloServiceImpl,代码如下
package com.service; public interface HelloService { public String hello(); }
package com.service.impl; import com.service.HelloService; public class HelloServiceImpl implements HelloService { public String hello() { return "Hello World..."; } }
3、在WebService项目下的services.xml中配置发布的接口,配置如下:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://xfire.codehaus.org/config/1.0"> <service> <name>MyService</name> <serviceClass>com.service.HelloService</serviceClass> <implementationClass>com.service.impl.HelloServiceImpl</implementationClass> </service> </beans>
4、将此WebService项目发布到Tomcat中,本人测试使用的是Tomcat 6.0,首先需要将Tomcat 6.0配置到myeclipse,然后通过myeclipse将项目发布到Tomcat中,并且启动Tomcat,这里省略,启动后,在IE中输入访问地址http://127.0.0.1:9999/WebService/services,进行访问,其中127.0.0.1为本机IP,9999为Tomcat配置的端口号,WebService为项目发布的名称,services为web.xml文件中配置的Servlet访问地址,访问后如下图所示。
点击MyService 右边的[wsdl],可以看到我们发布的WSDL地址为http://127.0.0.1:9999/WebService/services/MyService?wsdl,至此我们已经实现了建立WebService项目,并且发布一个简单的WebService接口。
5、在Myeclipse中建立客户端调用WebService发布的接口,并且进行测试。
5-1、首先在Myeclipse中再建立一个WebService项目,项目名为WebServiceClient,建立过程同上。之后在WebServiceClient中建立客户端连接我们发布的WebService接口。
5-2、在WebServiceClient中建立客户端。选中WebServiceClient项目,选择New下的Other,如下图所示。
选择Other后,如下图。
选择Web Service Client,点击[Next],如下图。
输入信息如上图后,点击[Next],如下图。
输入数据如上图,WSDL URL为我们发布的WSDL地址,这里我们选择了包com.client作为测试代码的存放位置,点击【Next】,如下图。
在上图中对WSDL进行校验,上图显示校验未发现错误,点击【Next】,如下图。
点击【Finish】就完成了建立客户端,并且从我们发布的WebService接口中下载代码到客户端上,如下图
在上图中,我们可以看到从我们发布的WebService接口中下载的代码,下面我们将使用MyServiceClient类调用我们发布的WebService接口,对接口进行测试。
5-3、在WebServiceClient项目中打开MyServiceClient类,我们在main方法中添加一行控制台输出代码,如下
public static void main(String[] args) { MyServiceClient client = new MyServiceClient(); //create a default service endpoint MyServicePortType service = client.getMyServiceHttpPort(); System.out.println(service.hello());//新添加的测试代码 //TODO: Add custom client code here // //service.yourServiceOperationHere(); System.out.println("test client completed"); System.exit(0); }
点击鼠标右键,选择Run as - Java Application,执行main方法,如下图。
控制台输出结果为:
由上图可以看到,我们成功通过客户端调用了发布的WebService接口中的方法。
service.hello(); hello方法为我们编写的HelloServiceImpl类中的hello方法。