zoukankan      html  css  js  c++  java
  • 服务端的思考

    概述


    我们思考发布一个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。可以在浏览器输入这个地址,浏览下其内容。但是我们还没有准备好对其进行解释。

    客户端测试


     





  • 相关阅读:
    2016第41周二
    2016第41周一
    2016第40周日
    svn冲突
    海量数据搜索
    网页爬虫的设计与实现(Java版)
    Eclipse中使用正则表达式搜索替换
    nodpad++正则替换
    DWR3.0 dwr 返回值(数组,集合,Map)
    自己用反射写的一个request.getParameter工具类
  • 原文地址:https://www.cnblogs.com/ywjy/p/5153203.html
Copyright © 2011-2022 走看看