1.7. 已知问题


1.7.1. 使用 Java DSL 重构 .endChoice () 行为

endChoice 方法更改为 end ().endChoice () (请参阅 CEQ-11181)。

当使用 Choice EIP 时,在某些情况下,您可能需要使用 .endChoice () 来继续添加更多节点到当前的选择 EIP 中,或者您要处理嵌套的选择 EIP (选择中的选择),那么您可能还需要使用 endChoice 回到父选择,以继续到父选择。

但是,在将旧的 Camel 版本升级到 4.11 时有一些回归问题,因此我们重构了 endChoice 以更加一致。

例如,以下代码:

from("direct:start")
    .choice()
        .when(header("foo").isGreaterThan(1))
            .choice()
                .when(header("foo").isGreaterThan(5))
                    .to("mock:big")
                .otherwise()
                    .to("mock:med")
            .endChoice()
        .otherwise()
            .to("mock:low")
        .end();
Copy to Clipboard Toggle word wrap

现在应该是:

from("direct:start")
    .choice()
        .when(header("foo").isGreaterThan(1))
            .choice()
                .when(header("foo").isGreaterThan(5))
                    .to("mock:big")
                .otherwise()
                    .to("mock:med")
            .end().endChoice()
        .otherwise()
            .to("mock:low")
        .end();
Copy to Clipboard Toggle word wrap

endChoice 方法的变化到 end ().endChoice () 使调用一致。

这结束了当前(内)选择,并将范围更改为 选择 EIP,从而能够继续选择(外部) 选择

这告知 Java DSL 范围是 Choice EIP,您可以将其他块添加到外部 选择 中,否则它将无法正常工作。

1.7.2. Websocket + Knative 无法使用 HTTP2

我们支持使用 Knative 支持 camel-quarkus-grpccamel-vertx-websocket

gRPC 需要 HTTP2 (您可以找到有关如何启用它的说明: Knative 上的 HTTP2)。

不幸的是,Knative 的 Websockets 无法用于 HTTP2 (请参阅 OpenShift Container Platform 中的 Ingress Operator)。

因此,如果您有一个应用程序旨在接受 WebSocket 连接,则必须允许使用 HTTP/2 协议,或者其它客户端将无法升级到 WebSocket 协议。

1.7.3. 运行 maven 更新时出错

当使用指定版本运行 maven 更新时:

mvn com.redhat.quarkus.platform:quarkus-maven-plugin:3.20.1.SP1-redhat-00001:update -Drewrite
Copy to Clipboard Toggle word wrap

这可能导致类似如下的错误:

Failed to apply the updates: The project is missing the Quarkus platform BOM in module foo.
Copy to Clipboard Toggle word wrap

受影响的模块特定于您的项目,因此您需要读取错误消息来查找受影响的模块。

临时解决方案

要避免错误,请将 quarkus-resteasy 依赖项添加到错误消息中提到的模块。

在我们的示例中,foo 模块将依赖项添加到 foo/pom.xml 中:

<dependency>
    <groupId>io.quarkus</groupId>
    <artifactId>quarkus-resteasy</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat