构建基于CXF的WebService服务(2)-- 利用CXF提供的wsdl2java工具创建客户端

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jaune161/article/details/25499939

1、环境配置

将CXF_HOME/bin加入到环境变量path中,如我的是D:\Java\Jar\apache-cxf-2.7.7\bin

打开cmd输入 wsdl2java -v 出现如下信息表示配置成功


2、wsdl2java的使用

(1)创建一个"Java Project"项目,暂且命名为client,将CXF用到的jar包引入进来,去掉jetty相关包,加入geronimo-jaxws_2.2_spec-1.1.jar包

(2)打开命令行工具,将目录切换到client项目中的src目录下


(3)在cmd中输入 wsdl2java http://localhost:8080/hello?wsdl 回车,稍等一会儿出现下面的画面,表示创建成功


(4)在MyEclipse中选中项目,点击刷新,就可以看到wsdl2java自动为我们创建的类了


(5)这时项目中有错误,是因为java自带的包与geronimo-jaxws_2.2_spec-1.1.jar冲突导致的,这是需要调整一下jar的优先级,让项目优先加载我们自己导入的包

(6)打开项目目录下的.classpath文件将<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>移到我们引入的jar的最下面,然后再刷新项目就可以了

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
	<classpathentry kind="src" path="src"/>
	<classpathentry kind="lib" path="lib/asm-3.3.1.jar"/>
	<classpathentry kind="lib" path="lib/commons-codec-1.7.jar"/>
	<classpathentry kind="lib" path="lib/commons-collections-3.2.1.jar"/>
	<classpathentry kind="lib" path="lib/commons-lang-2.6.jar"/>
	<classpathentry kind="lib" path="lib/commons-logging-1.1.1.jar"/>
	<classpathentry kind="lib" path="lib/cxf-2.7.7.jar"/>
	<classpathentry kind="lib" path="lib/geronimo-servlet_3.0_spec-1.0.jar"/>
	<classpathentry kind="lib" path="lib/neethi-3.0.2.jar"/>
	<classpathentry kind="lib" path="lib/stax2-api-3.1.1.jar"/>
	<classpathentry kind="lib" path="lib/woodstox-core-asl-4.2.0.jar"/>
	<classpathentry kind="lib" path="lib/wsdl4j-1.6.3.jar"/>
	<classpathentry kind="lib" path="lib/xmlschema-core-2.0.3.jar"/>
	<classpathentry kind="lib" path="lib/geronimo-jaxws_2.2_spec-1.1.jar"/>
	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
	<classpathentry kind="output" path="bin"/>
</classpath>

3、创建客户端

package com.tiamaes.webservice.client;

import com.tiamaes.webservice.test.impl.HelloWorldService;

/**  
 * <p>类描述:  客户端调用代码</p>
 * <p>修改人:王成委 </p>
 * <p>修改时间:2014-5-12 上午09:29:21  </p>
 * @version  
 */
public class HelloWorldClient {

	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		HelloWorldService serviceFactory = new HelloWorldService();
		com.tiamaes.webservice.test.HelloWorldService service = 
			serviceFactory.getHelloWorldServiceImplPort();
		
		String result = service.syaHello("Jaune");
		System.out.println(result);
	}

}
以上就是客户端调用的代码,CXF自动生成的代码中HelloWorldService接口跟工厂类名称相同,如果看着不爽可以自己改下。


转载于:https://my.oschina.net/jaune161/blog/3015890

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值