Java与WCF交互(一):Java客户端调用WCF服务 (转)

本文详细介绍了如何搭建WCF服务并通过Java客户端进行调用的过程。从创建WCF服务开始,逐步讲解了如何生成及使用wsdl文件,最终实现了跨语言的服务通信。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


======================================================
注:本文源代码点此下载
======================================================

最近开始了解wcf。写了个最简单的helloworld,想通过java客户端实现通信。没想到以我的基础,居然花了整整两天(当然是工作以外的时间,呵呵),整个过程大费周折,特写下此文,以供有需要的朋友参考:

第一步:生成wcf服务

新建wcf解决方案,分别添加三个项目,hellotimeservice(类库),hellotimehost(控制台程序),hellotimeclient(控制台程序),项目结构如图:

各个项目的主要代码:

service:

host:

client:

编译通过后,测试host和client分别成功:

保持host程序打开,这样,wcf服务就一直可以被外部程序调用。当然也包括java客户端。

我们看看生成的wsdl

第二步:调用wcf生成的wsdl生成java客户端。

首先,请允许我介绍下axis2,它的官方地址:http://ws.apache.org/axis2/

这是一个java平台的web service解决方案。我们最常用的是wsdl2java和java2wsdl两个功能。

关于web service的另一个解决方案是xfire,我没试过。

关于命令行执行wsdl2java,我也没有执行成功! 我这里介绍的是code generator wizard - eclipse plug-in,一个eclipse的插件。而且是在参考了众多解决方案才配置成功!

特别感谢yycxbjl 的这篇文章:http://www.cnblogs.com/yycxbjl/archive/2010/06/14/1758063.html

我的java整个配置环境:

1.安装jdk并配置环境变量

java_home=d:/2000/java/jdkupdate(注意,不带版本号是为了以后升级时只复制文件,而不必修改环境变量。)

path=%java_home%/bin;

classpath=.;%java_home%/lib;%java_home%/lib/tools.jar

2.下载并安装eclipse3.6 ,就是大家熟悉的太阳神helios (解压即可)

解压到:d:/2000/java/eclipse

3.下载tomcat6.0.29 (本文中使用的是绿色版,故解压即完成)

解压到:d:/2000/java/tomcat(注意,不带版本号是为了以后升级时只复制文件,而不必修改环境变量。)

由于安装的是tomcat6.0不用配置tomcat的环境变量,至于以前的版本可以查资料。

需要设置tomcat_home,catalina等环境变量

4.从 http://ws.apache.org/axis2/download/1_4_1/download.cgi 下载 axis2-1.4.1-bin.zip

解压到:d:/2000/java/axis2,注意不要下载axis2 1.5.1,原因 ( 据yycxbjl 说: “最新版的 1.5.0 与 1.5.1 中没有 backport-util-concurrent-3.1.jar,无法解决:使用axis2-eclipse-codegen-wizard插件,从wsdl文件生成java文件时出错无法继续的问题,故不使用。)

5.下载1.4.1版的 axis2-eclipse-codegen-wizard 与 axis2-eclipse-service-archiver-wizard

http://ws.apache.org/axis2/tools/1_0/eclipse/wsdl2java-plugin.html#operation1

(但解压后里面显示是1.3.0, 解压到:d:/2000/java/eclipse/dropins(连压缩包中的根目录一起解压出来)。也可以用传统的link方法部署。

复制d:/2000/java/axis2/lib/backport-util-concurrent-3.1.jar 与 geronimo-stax-api_1.0_spec-1.0.1.jar

到:d:/2000/java/eclipse/dropins/axis2_codegen_wizard_1.3.0/lib,并编辑:d:/2000/java/eclipse/dropins/axis2_codegen_wizard_1.3.0/plugin.xml

在 runtime 下 添加

将axis2_codegen_wizard_1.3.0重命名为axis2_codegen_wizard_1.4.1,(这是整个部署的关键!这里邀月折腾了整整一天!)


======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值