【JAX-WS入门系列】第02章_使用wsimport编写WebServices客户端

关于WebServices服务端的代码,详见http://blog.csdn.net/jadyer/article/details/8692035


这里的WebServices客户端,很简单,就一个java文件,用法见注释

package com.jadyer.client;

import com.jadyer.service.HelloService;
import com.jadyer.service.HelloServiceImplService;

/**
 * 借助wsimport实现WebServices客户端
 * @see wsimport是JDK6提供的工具,用于根据服务端发布的wsdl文件来生成客户端调用服务端时所需的*.java和*.class文件
 * @see wsimport -d D:/Download/ -keep -verbose http://127.0.0.1:8888/myHelloService?wsdl
 * @see '-d'--------指明生成的文件所存放的目录,注意该参数值对应的目录要存在,否则会报错
 * @see '-keep'-----指明生成class文件的同时也生成对应的java文件,否则它只会生成class文件
 * @see '-verbose'--指明生成文件时在控制台打印详细信息
 * @see '-p'--------指明生成文件的所属包名,默认为按照wsdl文件的targetNamespace属性来生成包名
 * @create Mar 16, 2013 10:49:18 PM
 * @author 玄玉<http://blog.csdn/net/jadyer>
 */
public class ClientApp {
	public static void main(String[] args) {
//		URL url = new URL("http://127.0.0.1:8888/myHelloService?wsdl");
//		QName qname = new QName("http://service.jadyer.com/", "HelloServiceImplService");
//		Service service = Service.create(url, qname);
//		HelloService hello = service.getPort(HelloService.class);
//		System.out.println(hello.add(2, 6));
//		System.out.println(hello.sayHello("Jadyer"));
		//通过wsimport生成客户端调用服务端所需的java文件后
		//即可以通过上面的方式来调用服务端,也可以通过下面的方式,但下面的方式要更省事一些
		HelloServiceImplService helloServiceImpl = new HelloServiceImplService();
		//也可以手工指定URL和QName
		//URL url = new URL("http://127.0.0.1:8888/myHelloService?wsdl");
		//QName qname = new QName("http://service.jadyer.com/", "HelloServiceImplService");
		//HelloServiceImplService helloServiceImpl = new HelloServiceImplService(url, qname);
		HelloService hello = helloServiceImpl.getHelloServiceImplPort();
		System.out.println(hello.add(2, 6));
		System.out.println(hello.sayHello("Jadyer"));
	}
}

也可以把wsimport命令写到一个批处理中

@echo OFF
wsimport -d D:/Download/ -keep -verbose http://127.0.0.1:8888/myHelloService?wsdl

你可能感兴趣的:(wsimport,jax-ws,WebServices,xjc,wsgen)