lee 1172 0 2018-01-02 17:54:19

Java编程中纯jdk java方式编写webservice服务(server)和客服端(client)

1.server

编写一个简单的server接口
package com.leftso.ws;

import javax.jws.WebMethod;
import javax.jws.WebService;

@WebService
public interface CommService {
	// 使用@WebMethod注解标注WebServiceI接口中的方法
	@WebMethod
	String sayHello(String name);
}

编写接口实现:
package com.leftso.ws;

import javax.jws.WebService;

/**
 * 使用@WebService注解标注WebServiceI接口的实现类WebServiceImpl
 * 
 * @author leftso
 *
 */
@WebService
public class CommServiceImp implements CommService {

	@Override
	public String sayHello(String name) {

		return "Hello ," + name;
	}

}

将该接口以webservice方式发布出去:
package com.leftso.ws;

import javax.xml.ws.Endpoint;

public class WebServicePublish {

	public static void main(String[] args) {
		// 定义WebService的发布地址,这个地址就是提供给外界访问Webervice的URL地址,URL地址格式为:http://ip:端口号/xxxx
		// String address = "http://192.168.1.100:8989/";这个WebService发布地址的写法是合法的
		// String address =
		// "http://192.168.1.100:8989/Webservice";这个WebService发布地址的是合法的
		String address = "http://127.0.0.1:9000/WS_Server/Webservice";
		// 使用Endpoint类提供的publish方法发布WebService,发布时要保证使用的端口号没有被其他应用程序占用
		Endpoint.publish(address, new CommServiceImp());
		System.out.println("发布webservice成功!");
		System.out.println("请使用:"+address+"?wsdl 访问");

	}

}

运行main方法,访问地址http://127.0.0.1:9000/WS_Server/Webservice?wsdl
可以看见wsdl文档如下
wsdl
2.client
调用,可以用最简单的jdk自带的工具wsimport生成本地Java代码,以类的方式直接调用方法就行
wsimport -keep url_wsdl(自己的wsdl地址)