基于JDK 1.6的WebService JAX-WS的实现

最近两天自己简单了解了一下关于WebService的知识,在此做下笔记,以备今后查找。

环境:Windows 7、JDK 1.6.25

1.首先建立Web工程JWS,创建包com.project.ws.

2.新建接口IWebService.java,代码如下:

package com.project.ws;

import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.Style;

@WebService(targetNamespace="http://ws.project.com")
@SOAPBinding(style = SOAPBinding.Style.RPC)

public interface IWebService {

	@WebMethod(action="toGetName",operationName="toGetName",exclude=false)
	@WebResult(name="returnName")//自定义该方法返回值在WSDL中相关的描述
	public String getName(@WebParam(name="name")String name);//获取名字
	
	@WebMethod(action="toGetResult",operationName="toGetResult",exclude=false)
	@WebResult(name="returnResult")
	public int getResult(@WebParam(name="a")int a,@WebParam(name="b")int b);//求和
}

3.新建类WebServiceServer.java并实现IWebService接口,代码如下:

package com.project.ws;

import javax.jws.WebService;

@WebService(endpointInterface = "com.project.ws.IWebService")
public class WebServiceServer implements IWebService {
	
	/**
	 * 获取名称
	 */
	public String getName(String name) {
		if("huawuying".equals(name)){
			return "花无影";
		}else{
			return name;
		}
	}

	/**
	 * 获取计算结果
	 */
	public int getResult(int a, int b) {
		return (a+b);
	}

}

4.新建发布WebService类WebService.java,代码如下:

/**
 * 服务发布类
 */
package com.project.ws;

import javax.xml.ws.Endpoint;

/**
 * @author Administrator
 * @category 发布服务
 */
public class WebService {

	public static void main(String[] args){
		try{
			WebServiceServer server = new WebServiceServer();
			Endpoint.publish("http://127.0.0.1:8080/JWS", server);
			System.out.println("WebService发布成功!");
		}catch(Exception e){
			System.out.println("发布WebService发生异常!"+e.getMessage());
		}
	}
}

5.编写客户端调用类WSClient.java,代码如下:

package com.project.ws;

import java.net.MalformedURLException;
import java.net.URL;

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

public class WSClient {

	public static void main(String[] args){
		try {
			URL url = new URL("http://127.0.0.1:8080/JWS/?wsdl");
			// 第一个参数是服务的URI 
	        // 第二个参数是在WSDL发布的服务名//此处QName参数说明:param1[IWebService中指定的targetNamespace命名空间URI];param2[IWebService实现类名称+Service] 此处为本人参考JDK API文档所添加的注释,如有错误,请各位指正。 
 
	        QName qname = new QName("http://ws.project.com/","WebServerService"); 	        // 创建服务 
	        Service service = Service.create(url, qname);   
	        // 提取端点接口,服务“端口”。 
	        IWebService webService = service.getPort(IWebService.class);   
	        System.out.println(webService.getName("huawuying"));   
	        System.out.println(webService.getResult(15, 20));
		} catch (MalformedURLException e) {
			System.out.println("调用WebService发生异常!"+e.getMessage());
			e.printStackTrace();
		}
	}
}

6、运行WebService.java发布WebService服务,再运行WSClient.java,调用服务端进行测试输出。


文章转载自http://my.oschina.net/u/658145/blog/96528

你可能感兴趣的:(基于JDK 1.6的WebService JAX-WS的实现)