sts 创建webservice项目_使用Eclipse建立Webservice

本文详细介绍了如何使用Eclipse创建Webservice项目,从建立工程到配置services.xml,再到编写接口和实现类。接着展示了如何部署到Tomcat服务器,查看Wsdl文件,以及使用XFireFactory创建客户端进行测试。此外,还提供了C#调用该Webservice的示例,指导在VS.NET中添加Web引用并生成客户端代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

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

〈servlet-name〉XFireServlet〈/servlet-name〉

〈servlet-class〉org.codehaus.xfire.

transport.http.XFireConfigurableServlet

〈/servlet-class〉

〈load-on-startup〉0〈/load-on-startup〉

〈/servlet〉

〈servlet-mapping〉

〈servlet-name〉XFireServlet〈/servlet-name〉

〈url-pattern〉/services/*〈/url-pattern〉

〈/servlet-mapping〉

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

//GeneratedbyMyEclipse

publicinterfaceIHelloWorldService{

publicStringsayHello(Stringname);

}

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

//GeneratedbyMyEclipse

publicclassHelloWorld

ServiceImplimplementsIHelloWorldService{

publicStringsayHello(Stringname){

return"hello,"+name;

}

}

最后,配置下services.xml文件:

〈service〉

〈name〉HelloWorldService〈/name〉

〈serviceClass〉

net.rubyeye.webservicedemo.IHelloWorldService

〈/serviceClass〉

〈implementationClass〉

net.rubyeye.webservicedemo.HelloWorldServiceImpl

〈/implementationClass〉

〈style〉wrapped〈/style〉

〈use〉literal〈/use〉

〈scope〉application〈/scope〉

〈/service〉

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

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代码:packagenet.rubyeye.webservicedemo;

importjava.net.MalformedURLException;

importjava.util.ArrayList;

importjava.util.List;

importorg.codehaus.xfire.XFireFactory;

importorg.codehaus.xfire.client.

XFireProxyFactory;

importorg.codehaus.xfire.service.Service;

importorg.codehaus.xfire.service.

binding.ObjectServiceFactory;

publicclassHelloWorldClient{

publicstaticvoidmain(Stringargs[]){

ServicesrvcModel=newObjectServiceFactory()

.create(IHelloWorldService.class);

XFireProxyFactoryfactory=

newXFireProxyFactory(XFireFactory

.newInstance().getXFire());

StringhelloWorldURL="http://localhost:

8081/HelloWorld/services/HelloWorldService";

try{

IHelloWorldServicesrvc=(IHelloWorldService)

factory.create(

srvcModel,helloWorldURL);

System.out.print(srvc.sayHello("dennis"));

}catch(MalformedURLExceptione){

e.printStackTrace();

}

}

}

执行,打印: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事件中添加代码: usingSystem;

usingSystem.Collections.Generic;

usingSystem.ComponentModel;

usingSystem.Data;

usingSystem.Drawing;

usingSystem.Text;

usingSystem.Windows.Forms;

namespaceMyProject

{

publicpartialclassForm1:Form

{

localhost.HelloWorldServicehelloService=

newlocalhost.HelloWorldService();

publicForm1()

{

InitializeComponent();

}

privatevoidbutton1_Click(objectsender,

EventArgse)

{

label1.Text=helloService.sayHello("dennis");

}

}

}

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

4.执行ctr+F5

【编辑推荐】

【责任编辑:冰荷 TEL:(010)68476606】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值