博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
转载——Java与WCF交互(二):WCF客户端调用Java Web Service
阅读量:5890 次
发布时间:2019-06-19

本文共 1830 字,大约阅读时间需要 6 分钟。

在上篇《 》中,我介绍了自己如何使用axis2生成java客户端的悲惨经历。有同学问起使用什么协议,经初步验证,发现只有wsHttpBinding可行,而NetTcpBinding不可行,具体原因待查。昨晚回去重新测试WCF客户端调用Java Web Service,并将过程公布如下:

其实本不需要做web service,只是原来公开的经典的Web service像(L)等不可访问了。于是邀月重写了一个本地的web service,以作演示。

第一步:建立本地java环境,并构建 web Service代码,发布web service

1、设置Java环境:

JDK6/J2SE1.6以上,必须!!后面邀月会说明原因。

Eclipse 3.6

Axis2_Codegen_Wizard_1.4.1插件,配置见上文《》

假定以上环境都OK

2、Services 服务端应用程序

在Eclipse中新建一个java project,名为JavaServiceForWCFClient,如图:

邀月工作室

选择一个运行时库

 邀月工作室

在src下新建一个package,如图:

邀月工作室 

在该package下新建一个类HelloTimeForWCF,代码如下:

邀月工作室

请注意上图中:@WebService的使用。这称为 Annotation 或元数据,由 Java SE 5 中引入的 Web Services 元数据规范 (Web Services Metadata Specification) 所使用。开发人员在对类和方法应用 Annotation 之前定义类和方法,以向运行时引擎指明如何将类及其方法作为 Web Services 和 Web Services 操作来启用。Java SE 6 附带了这样一个引擎。@WebService Annotation 将 SayHello 类标记为实现某个 Web Services ,从而产生可部署的 Web Services 。这个特定的 Annotation 是一个 WSDL 映射 Annotation,并将 Java 源代码与表示 Web Services 的 WSDL 元素相关联。(注:本段内容来自IBM官方网站,)

下一步,就是Ant工具大派用场的时候了,

在项目根路径下新建一build.xml,内容如图:

邀月工作室

以"Ant Build"方式运行该文件:

邀月工作室

应该在控制台收到如下信息:

邀月工作室

以上信息,表明ant创建成功!此时,刷新项目视图,应该得到如图所示的结果,其中黄色部分为刚生成的内容:

邀月工作室

在package中新增一个主类,是否感觉有点像WCF中的Host引擎?其实作用就是如此。

邀月工作室

其内容如下:

邀月工作室

运行程序,就如同运行WCF中的Host:

 

邀月工作室

可以用内部的浏览器来浏览这个地址:

邀月工作室

至此,Java web端部署完成。

 

 

第二步:建立本地WCF客户端,调用第一步生成的web service

新建一个普通的控制台项目,名为WCFClientFromJava,,并按下图所示使用SvcUtil命令:(Svcutil.exe,ServiceModel 元数据实用工具用于依据元数据文档生成服务模型代码,以及依据服务模型代码生成元数据文档。ServiceModel 元数据实用工具可在 Windows SDK 安装位置中找到,一般位置为 C:\Program Files\Microsoft SDKs\Windows\v6.0\Bin)

邀月工作室

生成后,将生成的文件包含在项目中,项目结构如下:

邀月工作室

生成的app.config文件如下:

邀月工作室
此时,在program.cs文件中添加如下方法:
邀月工作室

 至此,WCF客户端调用Java Web service成功!

小结,这是一个很简单的demo,主要技术点在于:

1、@Webservice的使用,参看

2、SvcUtil的使用,参看MSDN:

本文参考:

 使用 Eclipse 和 Java SE 6 创建独立 Web Services 应用程序,第 1 部分: Web Services 服务端应用程序

Introducing JAX-WS 2.0 With the Java SE 6 Platform, Part 1

 

邀月注:本文版权由邀月和博客园共同所有,转载请注明出处。
助人等于自助!  
 
转载自:http://www.cnblogs.com/downmoon/archive/2010/08/25/1807982.html
你可能感兴趣的文章
WEB版一次选择多个文件进行批量上传(WebUploader)的解决方案
查看>>
Redis之 命令行 操作
查看>>
Jvm(46),指令集----对象创建与访问指令
查看>>
EL 表达式小结
查看>>
内部排序
查看>>
jQuery EasyUI API 中文文档 - 组合(Combo)
查看>>
10个关于 Dropbox 的另类功用(知乎问答精编)[还是转来了]
查看>>
Oracle体系结构
查看>>
用Modelsim仿真QII FFT IP核的时候出现的Error: Illegal target for defparam
查看>>
javascript Error对象详解
查看>>
nc 局域网聊天+文件传输(netcat)
查看>>
C++它 typedef void *HANDLE
查看>>
Git常用命令
查看>>
Linux下查看MySQL的安装路径
查看>>
C#获取磁盘列表与信息
查看>>
mysql学习笔记4---mysql 复制---源代码
查看>>
Linux设备驱动之semaphore机制【转】
查看>>
每天一个linux命令(25):linux文件属性详解
查看>>
【android】getDimension()、getDimensionPixelOffset()和getDimensionPixelSize()区别详解
查看>>
HDU 3280 Equal Sum Partitions(二分查找)
查看>>