NPE 与 Artemis 核心客户端版本 2.19 和服务器版本 2.16

NPE with Artemis core client version 2.19 and server version 2.16

正在更新spring 引导版本带来了新的 Artemis 客户端版本 (2.19),但我的服务器仍然是 2.16(将来可能会更新)

目前我在 ActiveMQSession 上有一个 NPE 问题:

if ((!subResponse.isExists() || !Objects.equals(subResponse.getAddress(), dest.getSimpleAddress()) || !Objects.equals(subResponse.getFilterString(), coreFilterString)) && !subResponse.isConfigurationManaged()) {

因为 subResponse.isConfigurationManaged() 为空。 是否可以让服务器的2.16版本return这个值? 有客户端和服务端的兼容指南吗?

谢谢

很遗憾,您的升级方向与通常的做法相反。通常,代理会在 之前 升级客户端(因为升级一台服务器比升级数百或数千个客户端更容易)。我们进行了大量的兼容性测试,以确保老客户与新经纪商合作,但我们确保新客户与老经纪商合作的测试要少得多(即您的情况)。

无论如何,您正在使用的 NPE 已经 been resolved 并将包含在下一个版本(即 2.21.0)中。目前没有此版本的时间表,因为之前的版本(即 2.20.0)是在不到一个月前的 12 月下旬发布的。

在下一个版本之前,您有两个主要选择:

  1. 将您的客户端降级回兼容版本。
  2. 自己修补和构建客户端。这应该是一个相当简单的过程,因为变化非常小。然后您可以使用 mvn clean install -Prelease -DskipTests.
  3. 构建您自己的自定义版本