24.2. 创建 SEI


概述

服务端点接口 (SEI)是 Java 代码的一部分,在服务实施和在该服务上发出请求的用户之间共享。SEI 定义服务实施的方法,并提供有关如何将服务公开为端点的详细信息。从 WSDL 合同开始,SEI 由代码生成器生成。但是,从 Java 开始时,开发人员负责创建 SEI。 创建 SEI 有两种基本模式:

  • 绿色字段开发 - 在这个模式中,您正在没有现有 Java 代码或 WSDL 的情况下开发新服务。最好先创建 SEI。然后,您可以将 SEI 分发给负责实施使用 SEI 的服务提供商和消费者的任何开发人员。

    注意

    推荐执行绿色字段服务开发方式,即首先创建一个定义服务及其接口的 WSDL 合同。请参阅 第 26 章 启动点 WSDL 合同

  • 服务启用 - 在这种模式中,您通常具有作为 Java 类实施的现有功能集合,并且您希望启用该服务。这意味着您必须执行两个操作:

    1. 创建一个 SEI,仅包含 作为服务一部分公开的操作。
    2. 修改现有的 Java 类,使其实施 SEI。

      注意

      虽然您可以将 JAX-WS 注解添加到 Java 类中,但不推荐这样做。

编写接口

SEI 是标准的 Java 接口。它定义了类实施的一组方法。它还可以定义多个成员字段,以及实施类可访问的常量。

如果定义的方法为 SEI,应当映射到服务公开的操作。SEI 对应于 wsdl:portType 元素。SEI 定义的方法对应于 wsdl: portType 元素。

注意

JAX-WS 定义了一个注解,允许您指定没有公开为服务一部分的方法。但是,最佳实践是将这些方法离开 SEI。

例 24.1 “简单 SEI” 为库存更新服务显示简单的 SEI。

例 24.1. 简单 SEI

package com.fusesource.demo;

public interface quoteReporter
{
  public Quote getQuote(String ticker);
}

实现接口

因为 SEI 是标准的 Java 接口,所以实施它的类是标准的 Java 类。如果以 Java 类开头,您必须进行修改以实施接口。如果您从 SEI 开始,实施类将实施 SEI。

例 24.2 “简单实施类” 显示在 例 24.1 “简单 SEI” 中实现接口的类。

例 24.2. 简单实施类

package com.fusesource.demo;

import java.util.*;

public class stockQuoteReporter implements quoteReporter
{
  ...
public Quote getQuote(String ticker)
  {
    Quote retVal = new Quote();
    retVal.setID(ticker);
    retVal.setVal(Board.check(ticker));[1]
    Date retDate = new Date();
    retVal.setTime(retDate.toString());
    return(retVal);
  }
}


[1] Board is an assumed class whose implementation is left to the reader.
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.