一:简介
本文介绍了Java与.NET开发的Web Services相互调用的技术。本文包括两个部分,第一部分介绍了如何用.NET做客户端调用Java写的Web Services,第二部分介绍了如何用Java做客户端调用.NET开发的Web Services。
二:项目需要的工具
Windows2000 Server(IIS)
Jbuilder9.0( 含有Tomcat , axis)
JDK1.4+Java Web Services Develop
VS.Net 2003
备注:假如没有JBuilder的话就需要自己下载安装Tomcat4.1 以及 Axis的开发包,并做相应配置。由于网上有很多这样的文章,这里就不一一说明了。
三:用.NET做客户端调用Java写的Web Services
1. 生成一个Java Web Services
使用JBuilder 生成一个Web Services是非常简单的,我完全是按照它的帮助做的,只要一步步做
下去就可以了。具体路径是Developing Web Services -> tutorials : Web Services(Axis) -> Creating a simple Web Services
2. 发布这个Web Services并得到它的WSDL
Web Services生成好之后,F9运行这个项目。然后,单击View浏览现有的Web 服务,单击Bean1的WSDL连接,我们可以在浏览器中察看它的WSDL描述。在浏览器地址栏复制WSDL地址,为下一步使用.NET开发客户端调用程序做预备。
3. 用VS.NET生成一个.NET的客户端
新建一个项目(WinForm,Asp.Net都可以),我在这里使用的是一个ASP.Net项目。在起始页面上放置一个文本输入框用来显示调用Web Services的结果,放置一个按钮,用来单击调用Web Services。然后,选择添加Web 引用,在WSDL一栏中把刚才得到的WSDL地址复制过来,Web 引用的名称输入JavaService,单击添加引用按钮就可以了。此时,我们可以在VS.net 的Solution EXPlore中看到这个Web 引用。
在按钮的单击事件中输入下列代码:
JavaService.Bean1 bean = new JavaService.Bean1();
TextBox1.Text = bean.getSample.ToString ();
这样,一个.NET客户端就完成了,测试一下,工作正常,OK.
四:用Java做客户端调用.NET写的 Web Services
有了上面的成功,使我以为用Java做客户端调用也是一件十分轻易的事情,可实际情况却耗费了我两天时间才得以实现。
1. 用VS.NET新建一个ASP Web Services工程,添加一个web 服务,命名为SumService.asmx。新增一个web method,代码如下:
[WebMethod]
public int IntAdd(int a,int b)
{
return a+b ;
}
然后运行它,并利用IE进行测试成功。
2. 打开jbuilder9.0,新建一个项目,添加一个java class ,命名为TestNetService,输入下列代码:
package MyWebServiceJavaClient;
import java.util.Date;
import java.text.DateFormat;
import java.util.Date;
import java.text.DateFormat;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import javax.XML.namespace.QName;
import java.lang.Integer;
import javax.XML.rpc.ParameterMode;