• WebService:JAX-WS实现WebService


            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分下载资源

  • 相关阅读:
    HDU 5937 Equation(DFS+剪枝)
    HDU 5733 tetrahedron(计算几何)
    BZOJ2243 [SDOI2011]染色(树链剖分+线段树合并)
    计蒜客 微软大楼设计方案(RMQ)
    Codeforces 804D Expected diameter of a tree(树的直径 + 二分 + map查询)
    Codechef Black Nodes in Subgraphs(树型背包)
    2017年暑假集训前的反省
    Codeforces 599E Sandy and Nuts(状压DP)
    Codeforces 570D Tree Requests(树上启发式合并)
    搭建MHA
  • 原文地址:https://www.cnblogs.com/lxjshuju/p/7189624.html
Copyright © 2020-2023  润新知