`
xm_koma
  • 浏览: 381811 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

jdk6构建webservice客户端

 
阅读更多

从jdk6开始,java引入了对webservice的支持。针对项目中的应用,利用jdk6构建webservice客户端。

wsimpot 命令 可以很方便的用来构建Web Service的客户端。

wsimport 是在JDK的bin目录下的一个命令(jdk6及以上),主要功能是根据服务端发布的wsdl文件生成客户端存根及框
架,负责与Web Service服务器通信,并在将其封装成实例,客户端可以直接使用,就像使用本地实例一样。

对Java而言,wsimport帮助程序员生存调用webservice所需要的客户端类文件.java和.class。要提醒指出的是,wsimport可以用于非Java的服务器端,

如:服务器端也许是C#编写的web service,通过wsimport则生成Java的客户端实现。

 

jdk6构建webservice客户端步骤:

第一步:新建一个java project



 


第二步:在cmd中调用wsimport命令生成客户端.java和.class文件,如下:



 

命令参数说明: 

-s 生成客户端执行类的源文件的存放目录,这里存放在当前java project的src目录下
-d 生成客户端执行类的class文件的存放目录,这里存放在当前java project的bin目录下
-p 定义生成类的包名,这里指定目录为:com.huaxia.stssyn.service.webservice

 

 

最后的参数:wsdl文件,也可以换成是一个能访问的url形式的wsdl连接,如:http://192.168.8.60:8899/services/HuaXiaService/Purdo2HuaXiaWebService?wsdl

 

生成客户端存根代码如下图:


第三步:编写调用类UserDataZongZiService

 

package com.huaxia.stssyn.service.webservice;

public class UserDataZongZiService {

	public void getUserDataByUserId(String userId) {
		String requestXmlStr = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>"
				+ "<requestdata><equipment_no>" + userId
				+ "</equipment_no></requestdata>";
		HuaXiaServiceImpl hxs = new HuaXiaServiceImpl();
		HuaXiaServiceImplPortType hxip = (HuaXiaServiceImplPortType) hxs
				.getHuaXiaServiceImplPort();
		String resultStr = hxip.queryWebSite(requestXmlStr);
		System.out.println(resultStr);
	}

	public static void main(String[] args) {
		UserDataZongZiService userds = new UserDataZongZiService();
		String userId = "KD1000003497";
		userds.getUserDataByUserId(userId);
	}
}

 

第四步:运行测试,结果成功返回。

 

注意问题:1、如果是将wsdl文件下载至本地,在wsimport命令中是利用本地的wsdl文件生成的客户端代码,请将提供服务的类中的wsdlLocation和URL的值改为正确的url形式。这里就是上述代码中的HuaXiaServiceImpl类。

2、请注意运行时,有可能会有冲突的jar包,笔者运行时就出现和xfire中jar文件中的类冲突,所以最好不要再调用第三方与webservice相关的jar包。

 

  • 大小: 2.8 KB
  • 大小: 3.3 KB
  • 大小: 5.3 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics