WebService(一) 简单入门

     WebSerivce是一种服务提供方式,通过WebService可以很方便的使用不同应用程序实现调用.许多平台对WebService都提供了实现。基于java实现WebService的比较流行的有CXF Axis JAX-WS,因为其实现原理都差不多,所以使用也大同小异。下面使用JAX-WS写的一个简单的WebService

       首先声明接口:

package gd.hz.service;

import javax.jws.WebService;

@WebService  //声明WebService接口
public interface IMyService {
	
	public int num(int a, int b) ;
}

 IMyService提供一个求和运算的方法,并且把计算的结果返回.

对其进行实现:

package gd.hz.service;

import javax.jws.WebService;

@WebService(endpointInterface="gd.hz.service.IMyService") //明白所实现的接入点
public class MyService implements IMyService {

	@Override
	public int num(int a, int b) {
		int c = a + b ;
		System.out.println("a+b=" + c);
		return c;
	}
}

    num方法对参数a和了进行求和并返回结果,@WebService:声明WebService服务

接下来发布服务

package gd.hz.service;

import javax.xml.ws.Endpoint;

public class Service {

	public static void main(String[] args) {
		//提供服务的地址
		String address = "http://localhost:5050/my" ;
		
		//MyService提供服务的实体
		Endpoint.publish(address, new MyService()) ;
	}
}

最后实现所提供的服务: 

package gd.hz.service;

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

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

public class ServiceClient {
	public static void main(String[] args)  {
		try {
			//提供服务的WSDL
			URL url = new URL("http://localhost:5050/my?wsdl") ;
			//http://service.hz.gd/:服务的命名空间
			//MyServiceService:服务名称
			QName qName = new QName("http://service.hz.gd/", "MyServiceService") ;
			Service service = Service.create(url, qName) ;
			IMyService myService = service.getPort(IMyService.class) ;
			System.out.println(myService.num(2, 5));
		} catch (MalformedURLException e) {
			e.printStackTrace();
		}
	}
}

 WebService在提供服务时会发布wsdl文档,通过对wsdl文档的解析可以得到我们调用所需要的信息.这个例子当我们运行ServiceClient 服务器端会计算机出结果并返回输出到来.

这个例子只是简单的介绍了WebService的一个流程,在下一个章节将详细介绍WebService如何动作的.

下面是该例子的源码:http://www.kuaipan.cn/file/id_129263676497613799.htm

猜你喜欢

转载自mylfd.iteye.com/blog/2038607