来自另一个管道的 Cocoon cinclude

Cocoon cinclude from another pipeline

我有一个带有管道的 Cocoon 设置,其转换器包含如下内容:

<cinclude:include src="https://my-app/get-some-data" />

现在,那里包含的 URL 实际上来自 Cocoon,我有一个 Java 不信任的 TLS 证书,所以我收到有关 PKI 证书路径的错误。我可以 "easily" 通过为包含我服务器的 TLS 证书的 JVM 进程指定一个信任库来解决这个问题(现在已经有一段时间了)。

我想停止这样做至少有两个原因:

  1. 当我的服务器证书需要更新时,我必须更新我的信任库并弹跳 Cocoon
  2. 它可能会更高效(没有环回 HTTP 请求,没有 TLS 握手等)

cinclude 是否理解 Cocoon 相对路径?

我正在寻找这样的东西:

<cinclude:include src="cocoon://get-some-data" />

有这样的东西吗?

是的,你完全可以做到这一点。所需的语法已经在问题中,稍作修改。例如,假设我们在 sitemap:

中配置了这个 match
<map:match pattern="get-some-data">
   ...
</map:match>

<map:match pattern="primary-request">
  ...
  <map:transform type="cinclude" />
  ..
</map:match>

在 "primary-request" 管道中使用 <cinclude> 从另一个管道包含只需要这样:

<cinclude:include src="cocoon:/get-some-data?parameters" />

此特定内容仅适用于同一站点地图中的管道。如果您需要在其他站点地图中引用管道,则需要进行更多设置——但这不在此处的问题范围内。