通过客户端编程的方式调用Webservice服务

新建Java项目

(1)新建包com.lvshitech.myServer,包下编写服务器端代码,WebServer.java

package com.lvshitech.myServer;
import javax.jws.WebService;
import javax.xml.ws.Endpoint;

/* WebService服务端:发布一个WebService服务,并调用 */

@WebService		// 标记类或接口,表示此类或接口可以实现(发布)WebService服务
public class WebServer {
	
	// 服务方法
	public String sayHello(String name) {
		return "Hello " + name;
	}
	
	public static void main(String[] args) {
		/*
		 * Endpoint:终端
		 * publish:创建一个终端
		 * 第一个参数:服务地址
		 * 第二个参数:终端的实现者,即当前类对象
		 */
		Endpoint.publish("http://127.0.0.1:6789/hello", new WebServer());
		System.out.println("WebServer is ready...");
	}
}

随便在一个目录下打开dos,输入:wsimport -p com.lvshitech.ws.server -s . http://127.0.0.1:6789/hello?wsdl,回车,生成java接口文件

新建包:com.lvshitech.ws.server,并将所有的 .java文件拷贝到该包下,

编写客户端代码,创建包:com.lvshitech.client,包下创建类:ClientDemo01.java,需要在浏览器中输入http://127.0.0.1:6789/hello?wsdl,查看wsdl文件的信息:

package com.lvshitech.client;

import java.net.URL;

import javax.xml.namespace.QName;
import javax.xml.ws.Service;

import com.lvshitech.ws.server.WebServer;

public class ClientDemo01 {
	public static void main(String[] args) throws Exception {
		// 获取服务端实例
		URL wsUrl = new URL("http://127.0.0.1:6789/hello?wsdl");
		Service service = Service.create(wsUrl, new QName("http://myServer.lvshitech.com/", "WebServerService"));
		// 获取服务器端代理
		WebServer webServer = service.getPort(new QName("http://myServer.lvshitech.com/", "WebServerPort"), WebServer.class);
		String responseMsg = webServer.sayHello("Peter");
		// 输出
		System.out.println(responseMsg);
	}
}

运行:

 

posted @ 2018-03-14 20:10  半生戎马,共话桑麻、  阅读(243)  评论(0)    收藏  举报
levels of contents