1、jax-ws webservice的编写流程之代码优先

阅读更多

之前写webservice程序基本上用axis或xfire,最近的一个项目用到了jax-ws,研究了一下,总结一下内容。webservice的实现一般有两种方式:代码优先和契约优先。所谓的契约优先就是在实现前,先定义一个数据交换格式,这样大家在实现的时候就有统一的规范可依,这对于大系统设计而言是非常必要的;本文先讲述的是代码优先的方式,具体步骤:

1、设计一个webservice的接口

package gjs.text.ws.inter;

import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
/**
 * 定义一个webservice接口
 * @author gaojingsheng
 *
 */
@WebService
public interface TestService {
	/**
	 * 求和
	 * @param a 加数a
	 * @param b 加数b
	 * @return 
	 */
	@WebResult(name = "sumResult")
	public int sum(@WebParam(name = "a") int a, @WebParam(name = "b") int b);

	/**
	 * 添加一个人,返回被添加的人
	 * @param person 
	 * @return
	 */
	@WebResult(name = "person")
	public Person addPerson(@WebParam(name = "person") Person person);
}

 

 这里需要注意的是,你需要熟悉三个annotation:@WebService、@WebResult、@WebParam。@WebService指定服务断点接口(SEI);@WebResult指定返回的结果的包装的元素名称;@WebParam表示封装请求参数的名称

 

2、实现服务接口(SIB)

 

 

package gjs.text.ws.inter;

import java.util.ArrayList;
import java.util.List;

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

@WebService(endpointInterface="gjs.text.ws.inter.TestService")
public class TestServiceImpl implements TestService{
	//先定义一个存储队列
	private List personList = new ArrayList();

	@Override
	@WebResult(name = "sumResult")
	public int sum(@WebParam(name = "a") int a, @WebParam(name = "b") int b) {
		return a+b;
	}

	@Override
	@WebResult(name = "person")
	public Person addPerson(@WebParam(name = "person") Person person) {
		this.personList.add(person);
		return person;
	}

}

 

 

3、发布服务

 

package startService;

import javax.xml.ws.Endpoint;

import gjs.test.service.MyServiceImpl;

/**
 * 用于启动webservice,启动方式就是用Endpoint的publish方法
 * @author gaojingsheng
 *
 */
public class StartService {
	public static void main(String[] args) {
		//jaxws的发布服务的方式
		Endpoint.publish("http://localhost:8889/testService", new TestServiceImpl());
	}
}

 

 4、看看我们发布效果(wsdl文件)

 

This XML file does not appear to have any style information associated with it. The document tree is shown below.

























































 

 

 到此,一个简单的服务就搭建完成了。

 

你可能感兴趣的:(jax-ws)