Java使用JWS API开发Web Service

JAX-WS,即Java API for XML Web Service,是Java开发基于SOAP协议的Web Service的标准。使用JWS API就可以直接开发简单的Web Service应用。


一、创建Web Service


打开Eclipse,新建一个Java Project,如下图所示:


新建了“HelloWorld”一个接口,“User”、“HelloWorldImpl”、“JWSWebService”三个类,其中“User”是实体类,“HelloWorldImpl”继承自“HelloWorld”接口,“JWSWebService”类是主程序入口。


“HelloWorld”接口的代码如下:

package com.guowei.ws.jws;

import javax.jws.WebParam;
import javax.jws.WebService;

/**
 * @author guowei
 *
 */
@WebService
public interface HelloWorld {
	 String sayHi(@WebParam(name="text") String text);
	 String sayHiToUser(@WebParam(name="user") User user);
}

“User”类的代码如下:

package com.guowei.ws.jws;

/**
 * @author guowei
 *
 */
public class User {
	private String name;
	private String description;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getDescription() {
		return description;
	}
	public void setDescription(String description) {
		this.description = description;
	}
}

“HelloWorldImpl”类的代码如下:

package com.guowei.ws.jws;

import javax.jws.WebService;

@WebService(endpointInterface = "com.guowei.ws.jws.HelloWorld",serviceName = "HelloWorld")
public class HelloWorldImpl implements HelloWorld {

	public String sayHi(String text) {
		// TODO Auto-generated method stub
		System.out.println("sayHi called");
		return "Hello " + text;
	}

	public String sayHiToUser(User user) {
		// TODO Auto-generated method stub
		System.out.println("sayHiToUser called");
		return "Hello "+ user.getName() +user.getDescription();
	}

}

“JWSWebService”类的代码如下:

package com.guowei.ws.jws;

import javax.xml.ws.Endpoint;

public class JWSWebService {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println("Starting Server");
		HelloWorldImpl implementor = new HelloWorldImpl();
		String address = "http://localhost:9000/helloWorld";
		Endpoint.publish(address, implementor);
		System.out.println("Web Service started");
	}	

}

二、发布Web Service
右键点击项目,在弹出的菜单中选择“Run As”-“Java Application”,如下图所示:


控制台出现如下提示,表明Web Service发布成功。



在浏览器地址栏中输入地址http://localhost:9000/helloWorld?wsdl,出现如下界面,说明Web Service发布成功了。其中的内容则是Web Service的描述信息。



三、Java客户端调用Web Service

Java客户端调用Web Service首先需要wsimport工具生成客户端代码,wsimport工具是jdk自带的工具,用于根据WSDL文件自动生成本地的Java类。wsimport在jdk安装目录下的bin目录下,如果配置好了Java环境,则可以在控制台以命令直接使用。

wsimport工具的使用详见:使用wsimport命令创建Web Service客户端。

生成的类文件如下:

Java使用JWS API开发Web Service_第1张图片

使用Eclipse新建一个Java项目“JWSClient”,将使用wsimport工具生成的类文件包复制到src目录下,如下图所示:



新建一个名为“com.guowei.ws.jwsclient”包,新建一个类“JWSClientDemo”,其代码如下:

package com.guowei.ws.jwsclient;

import com.guowei.ws.jws.HelloWorld;
import com.guowei.ws.jws.HelloWorld_Service;
import com.guowei.ws.jws.User;

public class JWSClientDemo {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		HelloWorld_Service jwsService = new HelloWorld_Service();
		HelloWorld hw = jwsService.getHelloWorldImplPort();
		System.out.println(hw.sayHi("geek"));
		
		User user = new User();
		user.setName("Jobs");
		user.setDescription("apple");
		System.out.println(hw.sayHiToUser(user));
	}

}


运行程序,结果如下,说明成功调用Web Service。

Java使用JWS API开发Web Service_第2张图片









你可能感兴趣的:(java,Web,service,jws)