zoukankan      html  css  js  c++  java
  • WebService学习之旅(一)使用JAX-WS发布WebService

    JAX-WS全称Java™ API for XML Web Services,是随着JDK1.6及其后续版本发布的方便Java程序员开发WebService应用的一组API,通常简称为JWS,目前版本为2.x。
    使用JAX-WS编写WebService非常简单,下面介绍WebService服务端及客户端实现。

    一、开发WebService服务端

    1.Web服务的接口称为SEI,我们首先要用定义一个接口HelloWorld,使用@WebService注解修饰接口名,使用@WebParam修饰需要对外发布的方法,代码如下:

    package com.csdn.jaxws.recipe01;
    
    import javax.jws.WebMethod;
    import javax.jws.WebService;
    
    @WebService
    public interface HelloWorld {
        @WebMethod
        String sayHello(String text);
    }

    2.WEB服务接口的实现类称为SIB,接下来我们需要实现HelloWorld接口:

    package com.csdn.jaxws.recipe01;
    
    import javax.jws.WebService;
    
    @WebService(endpointInterface = "com.csdn.jaxws.recipe01.HelloWorld") 
    public class HelloWorldImpl implements HelloWorld {
    
        @Override
        public String sayHello(String name) {
            return "hello," + name;
        }
    
    }
    

    3.服务接口和实现类已经编写完成,接着需要编写发布类HelloWorldService:

    package com.csdn.jaxws.recipe01;
    
    import javax.xml.ws.Endpoint;
    
    public class HelloWorldService {
        public static void main(String[] args) {
            HelloWorld hw = new HelloWorldImpl();
            Endpoint.publish("http://localhost:9089/service/HelloWorld", hw);
        }
    }
    

    4.编译运行HelloWorldService 类,如果控制台没有错误信息,说明我们的WebService已经发布成功。
    5.每个WebService都会有一个与之对应的WSDL文档,我们可以在WebService的URL后追加?WSDL查看,打开浏览器输入http://localhost:9089/service/HelloWorld?wsdl,可以查看wsdl文档。
    这里写图片描述

    二、WebService客户端编写

    WebService的客户端调用通常有两种,第一种使用RPC方式,第二种是使用JDK自带的wsimport工具生成客户端代码,使用这种方式较为简单,就像是在本地直接调用服务端代码一样。
    下面介绍如何使用wsimport生成客户端代码,并实现webservice调用。

    1.新建一个eclipse工程,使用控制台进入工程的src目录,输入:

    wsimport -keep http://localhost:9089/service/HelloWorld?wsdl

    工具执行完毕后生成客户端代码如下:
    这里写图片描述
    2.编写客户端调用代码Recipe01Client:

    package com.csdn.jaxws.recipe01.client;
    
    import com.csdn.jaxws.recipe01.HelloWorldImpl;
    import com.csdn.jaxws.recipe01.HelloWorldImplService;
    
    public class Recipe01Client {
        public static void main(String[] args) {
            //创建HelloWorldImplService对象
            HelloWorldImplService hws = new HelloWorldImplService();
            //通过getHelloWorldImplPort方法获取HelloWorldImpl实例
            HelloWorldImpl hw = hws.getHelloWorldImplPort();
            //使用HelloWorldImpl实例,像直接调用服务端方法一样,调用Web服务,获取WebService响应数据
            String retVal = hw.sayHello("Jone");
            System.out.println(retVal);
    
        }
    }
    

    你可以已经猜到,运行程序控制台输出:hello,Jone

  • 相关阅读:
    Redis数据类型
    Linux配置Redis
    Linux配置ActiveMQ
    Linux配置Docker
    3、Spring Boot日志
    2、Spring Boot配置
    1. Spring Boot入门
    Linux(centos6.8)配置Redis
    okhttp禁止重定向
    123
  • 原文地址:https://www.cnblogs.com/lanzhi/p/6468288.html
Copyright © 2011-2022 走看看