本人想开发一款andriod上的新闻阅读软件,客户端自然而然是用java开发,但服务器端想用asp.net实现,C#作为主要的开发语言。两种不同平台不同语言之间怎样进行通信交互呢?于是我想采用webservice。服务器端创建WCF服务,可以生成WSDL文件,但是又如何来开发能够访问服务的客户端呢?通过网上找资料,我发现了Axis2这个webservice框架,但是我们只用到他的wsdl2java工具,即用此工具将WSDL文件转换成java代码,屏蔽掉中间通信细节,让客户端可以轻松访问到服务器上的服务。下面我将一一介绍。
1.用vs创建wcf服务项目,然后运行,或者直接在浏览器输入地址http://localhost:57862/Service1.svc,会出现服务创建成功的界面
右键点击第一个链接,选择链接另存为,即将wsdl文件Service1.xml保存。
2.下载最新的axis2-1.xx-bin.zip,解压,进入其bin目录,你会发现几个bat格式的工具,其中就有我们想要的wsdl2java.bat,将service1.xml拷到这里。
3.运行命令行工具,进入到axis2/bin,再执行 wsdl2java -uri service1.xml,执行完毕后将生成的两个类文件,ServiceCallbackHandler.java和ServiceStub.java文件,注意在此之前要保证你已经安装了JDK,并设置了环境变量JAVA_HOME为JDK的路径.
4.将生成的文件添加到你的客户端项目中去,然后我们就可以通过他们来访问服务器端的服务了:
此时,最后的工作就是在Main中调用stub得到我们想要的服务结果了,简单方法,将刚才生成的测试类的方法略作修改,即可运行。如下: