Java 6 开发 WebService

什么是WebService,我的理解就是将某个类中的方法发布成Web服务 供别人调用(一个方法即一个服务)。最常见的Web服务有天气预报、手机号码归属地等等。

更专业的理论知识,Google一下,你就知道~


开发Web Service的方式有很多种,如Apache axis2、apache cxf、 xfire、以及Java6

Java 6 的一个新特性就是通过简单的annotaion将你的一个类发布成一个WebService.

本篇文章主要是介绍如何用Java编写自己的Web服务,发布,以及调用服务。

一、编写服务代码:

package com.xcy;

import javax.jws.WebService;

/**
 * @author Siuon
 * @version 1.0
 * @create 2012-7-19 下午7:28:12
 */
//在想要发布成WebService的类上加上注解@WebService
@WebService
public class Java6WB {
	
	/**
	 * 提供了一个说Hello的服务
	 * @return
	 */
	public String sayHello(String name){
		return "Hello "+name;
	}
	
	/**
	 * 提供了一个做加法的服务
	 * @param a
	 * @param b
	 * @return
	 */
	public int add(int a,int b){
		return a + b;
	}
	
	
}

二、发布服务

package com.xcy;

import javax.xml.ws.Endpoint;

/**
 * @author Siuon
 * @version 1.0
 * @create 2012-7-19 下午7:33:27
 */
public class Test {
	public static void main(String[] args) {
		Endpoint.publish("http://localhost:8080/ws/Java6WB", new Java6WB());
	}
}

运行后,打开浏览器访问: http://localhost:8080/ws/Java6WB?wsdl 可以看到:



三、通过jdk6的工具 生成客户端代码:

java6提供了一个wsimport.exe程序用来解析wsdl文件生成客户端代码用的。(wsimport.exe在jdk\bin目录下);

假设你已经配置了Java环境变量

wsimport  -d  [class文件存放目录]  -s  [源码存放目录]  -p  [包名]  -keep  [wsdl的URI]

在这里,我只指明了包名和wsdl的uri,这种情况下class文件和源码会在包所指的目录(其实你可以把源码目录指向你的工程)



四、通过生成的客户端代码调用Web服务


package test;

import com.xcy.webservice.client.Java6WB;
import com.xcy.webservice.client.Java6WBService;

/**
 * @author Siuon
 * @version 1.0
 * @create 2012-7-19 下午8:05:40
 */
public class Test {
	public static void main(String[] args) {
		//创建客户端对象
		Java6WB java6wb = new Java6WBService().getJava6WBPort();
		//调用
		String result = java6wb.sayHello("Siuon");
		System.out.println(result);
		
		int sum = java6wb.add(1, 3);
		System.out.println(sum);
	}
}
结果

Apache axis2 + Eclipse 开发 WebService


猜你喜欢

转载自blog.csdn.net/xiaochunyong/article/details/7764516