1. 程式人生 > >WebService:JAX-WS實現WebService

WebService:JAX-WS實現WebService

nload cal data- pos 接口 rri implement publish sni

WebService和Java核心技術中的RMI一樣用於實現異構平臺上的應用程序之間數據的交互,唯一不同的是這樣的技術屏蔽了語言之間的差異。這也是其大行其道的原因。

實現WebService的技術多種多樣,能夠使用JAX-WS、CXF、Axis2或Metro等方式實現WebService,接下來會給大家展示怎樣使用不同的方式實現WebService。本篇博客為大家演示怎樣使用JAX-WS實現WebService:

一、創建WebService服務器端:

1、新建一個名為“server”的Javaproject;

2、創建IComputeService接口,代碼例如以下:

package com.ghj.service;

import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;

/**
 * SEI Service Endpoint Interface 公布的服務接口
 * 
 * @author GaoHuanjie
 */
@WebService
@SOAPBinding(style=SOAPBinding.Style.RPC)
public interface IComputeService {

	public int add(int a, int b);
}

3、創建IComputeService接口實現類ComputeService。代碼例如以下:

package com.ghj.service.impl;

import javax.jws.WebService;

import com.ghj.service.IComputeService;

/**
 * SIB Service Implemention Bean 
 * 
 * @author GaoHuanjie
 */
//endpointInterface指定接入點接口:接口必須存在 
@WebService(endpointInterface="com.ghj.service.IComputeService")
public class ComputeService implements IComputeService{

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

4、創建啟動服務器端服務的類StartServer,代碼例如以下:

package com.ghj.server;

import javax.xml.ws.Endpoint;

import com.ghj.service.impl.ComputeService;

/**
 * 啟動服務器端服務
 * 
 * @author GaoHuanjie
 */
public class StartServer {
	public static void main(String[] args) {
		String address = "http://localhost:8888/compute";
		Endpoint.publish(address, new ComputeService());
	}
}

二、創建WebService客戶端:

1、新建一個名為“client”的Javaproject;

2、將“server”project中的IComputeService接口復制到“client”project中;

3、創建調用“server”projectIComputeService接口實現類的代碼。代碼例如以下:

package com.ghj.client;

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

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

import com.ghj.service.IComputeService;

public class Client {
	public static void main(String[] args) {
		try {
			URL url = new URL("http://localhost:8888/compute?wsdl");//創建訪問wsdl服務地址的url
			QName sname = new QName("http://impl.service.ghj.com/", "ComputeServiceService");//通過Qname指明服務的詳細信息,其參數值與本project中的1.png圖
			Service service = Service.create(url,sname);//創建服務
			IComputeService computeService = service.getPort(IComputeService.class);//實現接口
			System.out.println(computeService.add(12,33));
		} catch (MalformedURLException e) {
			e.printStackTrace();
		}
	}
}

三、執行WebService:

1、執行“server”project中的StartServer類;

2、執行“client”project中的Client類。

0分下載資源

WebService:JAX-WS實現WebService