使用Eclipse建立Webservice

这里讲解一个简单的例子;

1.首先我们使用Eclipse建立Webservice工程:

点击finish之后我们就完成了Eclipse建立Webservice的过程。myeclipse自动帮你生成services.xml以及web应用目录结构,其中的services.xml是你导出服务的配置文件,注意在WEB-INF/web.xml文件中配置了xfire自己的servlet.

 
 
 
 
  1. 〈servlet〉
  2. 〈servlet-name〉XFireServlet〈/servlet-name〉
  3. 〈servlet-class〉org.codehaus.xfire.
  4. transport.http.XFireConfigurableServlet
  5. 〈/servlet-class〉
  6. 〈load-on-startup〉0〈/load-on-startup〉
  7. 〈/servlet〉
  8. 〈servlet-mapping〉
  9. 〈servlet-name〉XFireServlet〈/servlet-name〉
  10. 〈url-pattern〉/services/*〈/url-pattern〉
  11. 〈/servlet-mapping〉

2.接下来,现在编写要导出的pojo类,首先是接口:

 
 
 
 
  1. packagenet.rubyeye.webservicedemo;
  2. //GeneratedbyMyEclipse
  3. publicinterfaceIHelloWorldService{
  4. publicStringsayHello(Stringname);
  5. }

这个接口我们只提供一个方法:sayHello(),我们没有采用JSR181标注式的声明方式,还是采用xml配置文件。然后是实现类:

 
 
 
 
  1. packagenet.rubyeye.webservicedemo;
  2. //GeneratedbyMyEclipse
  3. publicclassHelloWorld
  4. ServiceImplimplementsIHelloWorldService{
  5. publicStringsayHello(Stringname){
  6. return"hello,"+name;
  7. }
  8. }
  9. 最后,配置下services.xml文件:
  10. 〈service〉
  11. 〈name〉HelloWorldService〈/name〉
  12. 〈serviceClass〉
  13. net.rubyeye.webservicedemo.IHelloWorldService
  14. 〈/serviceClass〉
  15. 〈implementationClass〉
  16. net.rubyeye.webservicedemo.HelloWorldServiceImpl
  17. 〈/implementationClass〉
  18. 〈style〉wrapped〈/style〉
  19. 〈use〉literal〈/use〉
  20. 〈scope〉application〈/scope〉
  21. 〈/service〉

我们使用Eclipse建立的Webserviceweb服务名称叫做HelloWorldService,接口是IHelloWorldService,实现类是HelloWorldServiceImpl。注意,其实我们这三个步骤可以一步完成,只要直接使用myeclipse的new web service向导即可。

#p#

3.然后将此工程部署到tomcat上,通过http://localhost:8081/HelloWorld/services/HelloWorldService?wsdl可以看到生成的wsdl文件。注意,在部署之后,services会被拷贝到WEB-INFclassesMETA-INFxfire目录下,xfire会自动搜索此目录并加载配置文件。我们可以编写一个client来测试web服务,你也可以点击myeclipse上的Launch the Web Services来测试web服务。

4.编写client代码:

 
 
 
 
  1. packagenet.rubyeye.webservicedemo;
  2. importjava.net.MalformedURLException;
  3. importjava.util.ArrayList;
  4. importjava.util.List;
  5. importorg.codehaus.xfire.XFireFactory;
  6. importorg.codehaus.xfire.client.
  7. XFireProxyFactory;
  8. importorg.codehaus.xfire.service.Service;
  9. importorg.codehaus.xfire.service.
  10. binding.ObjectServiceFactory;
  11. publicclassHelloWorldClient{
  12. publicstaticvoidmain(Stringargs[]){
  13. ServicesrvcModel=newObjectServiceFactory()
  14. .create(IHelloWorldService.class);
  15. XFireProxyFactoryfactory=
  16. newXFireProxyFactory(XFireFactory
  17. .newInstance().getXFire());
  18. StringhelloWorldURL="http://localhost:
  19. 8081/HelloWorld/services/HelloWorldService";
  20. try{
  21. IHelloWorldServicesrvc=(IHelloWorldService)
  22. factory.create(
  23. srvcModel,helloWorldURL);
  24. System.out.print(srvc.sayHello("dennis"));
  25. }catch(MalformedURLExceptione){
  26. e.printStackTrace();
  27. }
  28. }
  29. }

执行,打印:hello,dennis

注意,你也可以使用MyEclipse的new webservice client向导自动生成client,同时生成供客户端调用的stub类等。

最后,我们再编写一个C#调用Eclipse建立的Webservice的例子。

1.在vs.net中新建一个windows 应用程序项目,并添加一个button,和一个label

2.项目菜单——》添加web应用,输入我们要调用的web服务的wsdl文件的url,并点击前往。

3.添加引用之后,vs.net会自动帮你生成提供给客户端调用的stub等,这些文件在名为localhost的命名空间下。此空间下将有一个类,名为HelloWorldService。最后,在button1的onclick事件中添加代码:

 
 
 
 
  1. usingSystem;
  2. usingSystem.Collections.Generic;
  3. usingSystem.ComponentModel;
  4. usingSystem.Data;
  5. usingSystem.Drawing;
  6. usingSystem.Text;
  7. usingSystem.Windows.Forms;
  8. namespaceMyProject
  9. {
  10. publicpartialclassForm1:Form
  11. {
  12. localhost.HelloWorldServicehelloService=
  13. newlocalhost.HelloWorldService();
  14. publicForm1()
  15. {
  16. InitializeComponent();
  17. }
  18. privatevoidbutton1_Click(objectsender,
  19. EventArgse)
  20. {
  21. label1.Text=helloService.sayHello("dennis");
  22. }
  23. }
  24. }

我们new一个HelloWorldService ,并调用sayHello方法,将结果显示在label上

4.执行ctr+F5

本文名称:使用Eclipse建立Webservice
网站路径:http://www.shufengxianlan.com/qtweb/news47/422147.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联