关闭

Java与.NET 的Web Services相互调用 (一)

1308人阅读 评论(0) 收藏 举报
  一:简介

  本文介绍了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客户端程序,你会发现系统会抛出一个SoapAction异常。奇怪,怎么会错误呢?想到了我开发的asp web services没有指定SoapAction,于是在SumService.asmx中的 [web method] 的上一行添加下列代码:

[SoapRpcMethod(Action="http://www.my.com/Rpc",RequestNamespace="http://www.my.com/SU",ResponseNamespace="http://www.my.com/SU")]

  重新编译运行asp web services后,在执行java程序,这时会发现输出了正确的结果3。

  这样,用java调用.net生成的web services也算初步完成了,好像也不是很复杂是吧。其实,在实际工作中,我一开始并没有在网上找到一个很好的代码例子,全部是依靠jbuilder 和 axis的帮助完成的, 可总是提示什么找不到相应的SoapAction。而实际上,我在运行了asp web services后是可以在IE浏览器中看到那个SoapAction的。我试验过将默认的SoapAction拷贝到java代码中,但是java客户端依然抛出同样的异常,这要我也很迷惑。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:68483次
    • 积分:891
    • 等级:
    • 排名:千里之外
    • 原创:21篇
    • 转载:11篇
    • 译文:0篇
    • 评论:5条
    最新评论