訊息轉換

功能 > 訊息功能 > 訊息轉換

訊息轉換

在 JMS 提供者內部轉換訊息有時很有用。例如,您可能有一個已上線一段時間的應用程式,它使用 ObjectMessage 訊息,但您希望將其轉換為使用 XML 負載(以保護自己免受序列化問題的影響)。

因此,ActiveMQ Classic 4.2 版本開始提供了一個可插拔的策略,稱為 MessageTransformer 介面。這允許您

  • 在訊息傳送到 JMS 提供者內的訊息匯流排之前,豐富或轉換訊息
  • 在訊息從訊息匯流排接收,但在發送到消費者之前,豐富或轉換訊息

因此,這允許您使用某種 XML 編組技術(如 XStreamJAXB2)將 ObjectMessage 轉換為包含 XML 的 TextMessage。

例如,有一個 XStreamMessageTransformer,當它在 ConnectionFactory 上配置時,會導致所有 ObjectMessage 實例在傳輸過程中靜默地轉換為 TextMessage 實例。如果您有非 Java 用戶端希望與您的 Java 訊息通信,這可能非常有用。

使用 MessageTransformer

要使用 MessageTransformer,您可以透過 setTransformer() 方法將其安裝在以下類別之一上

轉換器會在其子物件上繼承;因此您可以在連接工廠上安裝特定的轉換器,它將在所有連接、會話、生產者、消費者上繼承

Apache、ActiveMQ、Apache ActiveMQ、Apache 羽毛標誌和 Apache ActiveMQ 專案標誌是 Apache 軟體基金會的商標。版權所有 © 2024,Apache 軟體基金會。根據 Apache 許可證 2.0 授權。