Visual Studio 2008 C# .NET+ Apache Axis2+Eclipse Web服务实践

其实,我要实现的服务功能很简单:通过Web服务查询存储在SQL Server 2005数据库中的学生信息,具体来说就是提供学号作为参数查询该学生的姓名和EMAIL。虽然是很简单的Web服务,但是它能把开发Web服务的流程都覆盖了,完成它还是觉得蛮有成就感的(尤其是解决了很多细节上的问题)。下面就是我的思路和做法:

 

基本思路:

1. 编写ASP.NET Web服务,由VS协助生成WSDL文件;

2. 在客户端,利用Axis2的WSDL2JAVA命令和已知的URI,将生成的WSDL文件转换成Java Stub文件;

3. 调用生成的Java Stub文件完成查询工作。在调用该文件中的方法时,Axis2会自动帮助我们生成相应的SOAP消息发送到服务器端,并将服务器端返回的结果提取出来交给客户端程序。因此,Axis2在这个过程中为我们减少了很多繁杂的工作。

 

具体做法:

1. 利用Transact-SQL语句构建名为Assign的数据库并建立StudentInfo表(学号,姓名,Email);

2. 编写后台实现代码InfoEndSystem.cs,通过学号作为参数查询数据库并返回姓名和Email,测试代码保证能正常运行;

3. 在Visual Studio 2008中创建ASP.NET Web服务,导入后台代码,并在StudentInfoService.asmx中定义WebMethod(如,GetStudentName),在这些方法中调用InfoEndSystem.cs中的方法实现相应的功能。运行该Web服务,在IE地址栏输入http://localhost:2844/StudentInfoService.asmx,端口是2844,于是可以看到刚才在StudentInfoService.asmx中定义的WebMethod方法。在服务列表中点击这些服务(如,GetStudentName)便可以使用了;另外,点击“服务说明”看到的就是这个Web服务的WSDL文件。

4. 在客户端,利用Axis2的WSDL2JAVA获取并转化WSDL文件,具体命令是(destination是要存储的路径)

wsdl2java -uri http://localhost:2844/StudentInfoService.asmx?wsdl -o destination

执行成功后,生成StudentInfoSerivceStub.java文件,该文件包含WebMethod的所有实例。

5. 在Eclipse中建立客户端项目,导入StudentInfoSerivceStub.java文件(注意“包”问题),调用相应的方法并测试,即完成项目。

 

以上就是我处理项目的基本思路和做法,比较简明,我也想借此机会整理一下思路,刚刚解决了一个棘手的问题。现在项目的主要技术问题都解决了。关于遇到的问题和一些细节的处理方法,有时间在和大家一起分享。也希望大家能不吝赐教,多提意见和建议,不胜感激!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值