3.2. JAX-WS Web Service Endpoints


3.2.1. 关于 JAX-WS Web 服务端点

JAX-WS Web 服务端点是 Web 服务的服务器组件。客户端和其他 Web 服务使用称为简单对象访问协议(SOAP)的 XML 语言通过 HTTP 协议与其通信。端点本身部署到 JBoss EAP 容器中。

可以通过以下两种方式之一创建 WSDL 描述符:

  • 手动编写 WSDL 描述符.
  • 使用 JAX-WS 注释来自动创建 WSDL 描述符。这是创建 WSDL 描述符的最常用方法。

端点实施标有 JAX-WS 注释并部署到服务器。服务器会自动生成并发布 WSDL 格式的抽象合同,供客户端使用。所有 marshalling 和 unmarshalling 都委派至用于 XML 绑定(JAXB)服务的 Java 架构。

端点本身可能是 Plain Old Java 对象(POJO)或 Java EE Web 应用。您还可以使用 EJB3 无状态会话 Bean 来公开端点。它打包成 Web 存档(WAR)文件。打包端点的规范,称为 Java 服务端点(JSE),在 JSR-181 中定义。与 JAX-WS API 规范对应的 Jakarta EE 是 Jakarta Web Services 元数据规范 2.1

示例:POJO 端点

@WebService
@SOAPBinding(style = SOAPBinding.Style.RPC)
public class JSEBean {
    @WebMethod
    public String echo(String input) {
        ...
    }
}

示例:Web 服务端点

<web-app ...>
  <servlet>
    <servlet-name>TestService</servlet-name>
    <servlet-class>org.jboss.quickstarts.ws.jaxws.samples.jsr181pojo.JSEBean01</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>TestService</servlet-name>
    <url-pattern>/*</url-pattern>
  </servlet-mapping>
</web-app>

以下 EJB3 无状态会话 Bean 在远程接口和端点操作上公开相同的方法:

@Stateless
@Remote(EJB3RemoteInterface.class)

@WebService

@SOAPBinding(style = SOAPBinding.Style.RPC)
public class EJB3Bean implements EJB3RemoteInterface {
    @WebMethod
    public String echo(String input) {
        ...
    }
}

服务端点接口

JAX-WS 服务通常实施 Java 服务端点接口(SEI),它可以从 WSDL 端口类型(直接或使用注释)映射。此 SEI 提供了一个高级抽象,隐藏了 Java 对象及其 XML 表示之间的详细信息。

端点供应商接口

在某些情况下,JAX-WS 服务需要能够在 XML 消息级别上操作。端点 提供程序 界面向实施它的 Web 服务提供此功能。

使用和访问端点

部署 Web 服务后,您可以使用 WSDL 创建组件存根,这是应用程序的基础。然后,您的应用可以访问端点来开展工作。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.