搜索

第 12 章 使用 HTTP

download PDF

摘要

HTTP 是 Web 的底层传输。它为在端点之间进行通信提供了一个标准化、强大且灵活的平台。因为这些因素是假定为大多数 WS-* 规格的传输,是 RESTful 架构不可或缺的。

12.1. 添加基本 HTTP 端点

其它 HTTP 运行时

Apache CXF 支持以下替代 HTTP 运行时实现:

Netty HTTP URL

通常,HTTP 端点使用,每当类路径中包含 HTTP 运行时(Undertow 或 Netty)中。如果类路径上同时包含 Undertow 运行时和 Netty 运行时,则需要在希望使用 Netty 运行时明确指定,因为默认情况下将使用 Undertow 运行时。

如果类路径上有多个 HTTP 运行时可用,您可以通过指定端点 URL 来指定 Undertow 运行时,使其具有以下格式:

netty://http://RestOfURL

有效负载类型

根据您使用的有效负载格式指定 HTTP 端点地址,可通过三种方式指定。

  • SOAP 1.1 使用标准化 soap:address 元素。
  • SOAP 1.2 使用 soap12:address 元素。
  • 所有其他有效负载格式使用 http:address 元素。
注意

从 Camel 2.16.0 版本,Apache Camel CXF Payload 支持流缓存箱。

SOAP 1.1

当您通过 HTTP 发送 SOAP 1.1 消息时,您必须使用 SOAP 1.1 地址 元素来指定端点的地址。它具有一个属性,即 location,它将端点的地址指定为 URL。SOAP 1.1 地址 元素在命名空间 http://schemas.xmlsoap.org/wsdl/soap/ 中定义。

例 12.1 “SOAP 1.1 端口元素” 显示用于通过 HTTP 发送 SOAP 1.1 消息 的端口 元素。

例 12.1. SOAP 1.1 端口元素

<definitions ...
             xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" ...>
  ...
  <service name="SOAP11Service">
    <port binding="SOAP11Binding" name="SOAP11Port">
      <soap:address location="http://artie.com/index.xml">
    </port>
  </service>
  ...
<definitions>

SOAP 1.2

当您通过 HTTP 发送 SOAP 1.2 消息时,您必须使用 SOAP 1.2 地址 元素来指定端点的地址。它具有一个属性,即 location,它将端点的地址指定为 URL。SOAP 1.2 地址 元素在命名空间 http://schemas.xmlsoap.org/wsdl/soap12/ 中定义。

例 12.2 “SOAP 1.2 端口元素” 显示用于通过 HTTP 发送 SOAP 1.2 消息 的端口 元素。

例 12.2. SOAP 1.2 端口元素

<definitions ...
             xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" ... >
  <service name="SOAP12Service">
    <port binding="SOAP12Binding" name="SOAP12Port">
      <soap12:address location="http://artie.com/index.xml">
    </port>
  </service>
  ...
</definitions>

其他消息类型

当消息映射到 SOAP 以外的任何有效负载格式时,您必须使用 HTTP 地址 元素来指定端点的地址。它具有一个属性,即 location,它将端点的地址指定为 URL。HTTP 地址 元素在命名空间 http://schemas.xmlsoap.org/wsdl/http/ 中定义。

例 12.3 “HTTP 端口元素” 显示用于发送 XML 消息 的端口 元素。

例 12.3. HTTP 端口元素

<definitions ...
             xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" ... >
  <service name="HTTPService">
    <port binding="HTTPBinding" name="HTTPPort">
      <http:address location="http://artie.com/index.xml">
    </port>
  </service>
  ...
</definitions>
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.