使用Eclipse建立Webservice

开发 后端
本文通过简单小实例讲解Eclipse建立Webservice、pojo类、HelloWorldService接口、实现类是HelloWorldServiceImpl三个步骤来一步一步完成!

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

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

建立webservice 

项目界面 

xfire调用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.  
  10. 最后,配置下services.xml文件:  
  11. 〈service〉  
  12. name〉HelloWorldService〈/name〉  
  13. 〈serviceClass〉  
  14. net.rubyeye.webservicedemo.IHelloWorldService  
  15. 〈/serviceClass〉  
  16. 〈implementationClass〉  
  17. net.rubyeye.webservicedemo.HelloWorldServiceImpl  
  18. 〈/implementationClass〉  
  19. 〈style〉wrapped〈/style〉  
  20. 〈use〉literal〈/use〉  
  21. 〈scope〉application〈/scope〉  
  22. 〈/service〉  

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

HelloWorldService

HelloWorldService

#p#

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

HelloWorldService

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.  
  19. StringhelloWorldURL="http://localhost:  
  20. 8081/HelloWorld/services/HelloWorldService";  
  21. try{  
  22. IHelloWorldServicesrvc=(IHelloWorldService)  
  23. factory.create(  
  24. srvcModel,helloWorldURL);  
  25. System.out.print(srvc.sayHello("dennis"));  
  26. }catch(MalformedURLExceptione){  
  27. e.printStackTrace();  
  28. }  
  29. }  
  30. }  

执行,打印:hello,dennis

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

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

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

dennis

dennis

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

dennis

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. }  

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

4.执行ctr+F5

dennis 

 

dennis 

【编辑推荐】

  1. C#中定义装箱和拆箱详解
  2. 浅谈C#类型系统
  3. 三种不同的C#异常类型
  4. 详细介绍C#编译器
  5. C#异常机制的相关解释
责任编辑:冰荷 来源: 3648
相关推荐

2014-11-18 11:20:51

webserviceCXFSpring

2011-11-29 10:23:47

JSPaxiswebservice

2009-06-11 09:39:33

netbeans 生成Webservice

2009-08-06 16:44:03

C#创建WebServ

2010-08-19 10:02:25

AndroidEclipseUbuntu

2009-06-18 15:33:40

2014-06-19 10:59:10

AndroidEclipse公共库

2010-04-23 11:56:50

Oracle序列

2009-06-10 16:19:33

Eclipse开发PH

2010-05-20 18:52:06

Eclipse使用SV

2009-06-17 17:44:41

Eclipse插件Sp

2009-06-10 16:41:51

Links安装Ecli

2009-06-10 16:35:25

HibernateEclipse安装

2009-06-04 20:45:11

Eclipse插件安装Eclipse插件使用

2011-09-13 17:03:16

Eclipse And

2009-06-01 15:32:30

EclipseJPA入门

2009-08-07 13:55:35

Java客户端类调用C# WebServi

2011-11-24 14:49:16

JavaJDKWebService

2012-04-11 10:39:32

Eclipse

2010-05-20 18:30:08

Eclipse下使用S
点赞
收藏

51CTO技术栈公众号