当前位置: 代码迷 >> Web前端 >> 使用wsimport创办WebService客户端
  详细解决方案

使用wsimport创办WebService客户端

热度:187   发布时间:2013-10-14 12:54:46.0
使用wsimport创建WebService客户端
	wsimport验证;
		//String[] cmd = new String[]{"wsimport", "-b", jaxwsC, "-s", src, "-p", pkg, "-verbose", uri, "-Xnocompile"};
		logger.debug("cmd : " + Arrays.toString(cmd));
		
		//String jaxwsC = src.substring(0, src.lastIndexOf(File.separator) + 1) + "jaxws-custom.xml";
		jaxws-custom.xml:
			<jaxws:bindings xmlns:jaxws="http://java.sun.com/xml/ns/jaxws">
				<jaxws:enableWrapperStyle>false</jaxws:enableWrapperStyle>
			</jaxws:bindings>
		-b  jaxws-custom.xml 参数设置生成的类中,是否将多参数聚合为一个Request对象,里面是属性
		
		-d 生成客户端执行类的class文件的存放目录
		-s 生成客户端执行类的源文件的存放目录
		-p 定义生成类的包名

		
	cxf wsdl2java验证:
		wsdl2java -d ./cxf/src -frontend jaxws21 -impl ESB_ERP_FA_ImportAssetsChangeInfoSrv.wsdl
?

?

开发步骤:

  1. 创建eclipse项目;
  2. 运行wsimport命令生成客户端代码;
  3. 通过代理调用服务;

创建Ecplise项目

使用Eclipse创建客户端项目JAX-WS-Client,目录结构如下:

运行wsimport工具

使用上篇博文创建的Web Service地址,命令行进入JAX-WS-Client项目目录,运行:

  1. wsimport -d ./bin -s ./src http://localhost:8808/HelloService?wsdl

此时的目录结构如下:

通过代理调用服务

?

  1. package net.oseye;
  2. ?
  3. publicclassMain{
  4. ?
  5. /**
  6. * @param args
  7. */
  8. publicstaticvoid main(String[] args){
  9. HelloService helloService=newHelloService();
  10. String helloStr=helloService.getHelloPort().sayHello("oseye");
  11. System.out.println(helloStr);
  12. }
  13. }

wsimport简介

wsimport也是在JDK的bin目录下的一个exe文件(Windows版),主要功能是根据服务端发布的wsdl文件生成客户端存根及框架,负责 与Web Service 服务器通信,并在将其封装成实例,客户端可以直接使用,就像使用本地实例一样。对Java而言,wsimport帮助程序员生存调用web service所需要的客户端类文件.java和.class。要提醒指出的是,wsimport可以用于非Java的服务器端,如:服务器端也许是C# 编写的web service,通过wsimport则生成Java的客户端实现。

命令参数说明:

  • -d 生成客户端执行类的class文件的存放目录
  • -s 生成客户端执行类的源文件的存放目录
  • -p 定义生成类的包名

来源:http://www.oseye.net/user/kevin/blog/90

  相关解决方案