• 服务端的思考


    概述


    我们思考发布一个web服务需要做的工作,并进行职责的划分。

    职责的划分


    通常我们会先制定抽象的接口,然后根据接口构造实现类。接口和实现类都完成了,再实施发布。所以,服务端的角色可以划分为:服务接口服务实现服务发布者

    服务端的实现


    功能:将阿拉伯数字转换成中文数字序列。

    服务接口

    package cn.ljl.sand.jws.chapter1.service;
     
    import javax.jws.WebParam;
    import javax.jws.WebResult;
    import javax.jws.WebService;
     
    @WebService
    public interface InterpretService {
      @WebResult(name = "chnum") // 默认的result的name是return
      public String interpret(
           @WebParam(name = "num")/* 默认的参数名是arg0, arg1... */int num);
    }

    注意:

    1. WebResult注解
      用以指定返回结果的名称,不指定则默认为return
    2. WebParam注解
      用以指定参数的名称,不指定则默认为arg0, arg1...

    服务实现类

    package cn.ljl.sand.jws.chapter1.service;
     
    import javax.jws.WebService;
     
    @WebService(endpointInterface = "cn.ljl.sand.jws.chapter1.service.InterpretService")
    public class InterpretServiceImpl implements InterpretService {
      public static final String[] CH_NUMS = // 强制格式化换行
      { "零", "一", "二", "三", "四", "五", "六", "七", "八", "九" };
     
      @Override
      public String interpret(int num) {
        StringBuilder builder = new StringBuilder(Integer.toString(num)
            .length());
        for (int digit = num % 10; num > 0; num = num / 10, digit = num % 10) {
          builder.append(CH_NUMS[digit]);
        }
     
        builder.reverse();
        return builder.toString();
      }
    }
    注意:
    1. 服务实现类也需要用WebService进行注解,并且以endpointInterface指定所继承的接口。
    2. 默认生成的代码可能会生成WebResult、WebParam的注解内容,但是这些不是必要的。

    服务发布者

    package cn.ljl.sand.jws.chapter1.service;
     
    import javax.xml.ws.Endpoint;
     
    public class InterpretServicePublisher {
      public static void main(String[] args) {
        String address = "http://localhost:6666/service/interpret";
        InterpretService service = new InterpretServiceImpl();
        Endpoint.publish(address, service);
      }
    }
    根据代码可知,wsdl的URL是http://localhost:6666/service/interpret?wsdl。可以在浏览器输入这个地址,浏览下其内容。但是我们还没有准备好对其进行解释。

    客户端测试


     





  • 相关阅读:
    虚函数******
    C++ 中的运算符重载********
    继承
    静态成员和成员函数
    类指针
    内联函数
    k8基础架构
    cobbler自动装机
    ens33-eth0
    PXE-自动装机配置
  • 原文地址:https://www.cnblogs.com/ywjy/p/5153203.html
Copyright © 2020-2023  润新知