【问题标题】:Work around for MessageNotReadableException in Java在 Java 中解决 MessageNotReadableException
【发布时间】:2010-11-27 21:18:40
【问题描述】:

我正在为我的一个项目围绕 JMS API 构建一个小 api。本质上,我们正在构建处理连接逻辑的代码,并通过提供像 Client.send(String message) 这样的方法来简化发布消息。

目前正在讨论的一个想法是,我们为用户提供了一种将拦截器附加到此客户端的方法。我们将在准备好 JMS 消息之后和发布之前应用拦截器。

例如,如果我们想给一条消息加上时间戳并为此编写一个拦截器,那么这就是我们应用它的方式

...some code ...

Message message = session.createMessage()

..do all the current processing on the message and set the body

for(interceptor:listOfInterceptors){
   interceptor.apply(message)
}

我们想到的一种拦截器是压缩消息体。但是当我们尝试在拦截器中读取消息体时,我们得到了 MessageNotReadableException。过去,我通常在将内容设置为消息正文之前对其进行压缩 - 因此不必担心此异常。

有没有办法绕过这个异常?

【问题讨论】:

    标签: java jms


    【解决方案1】:

    您的 JMS 客户端似乎试图读取只写消息。您的拦截器无法以这种方式工作,请详细说明您之前是如何压缩消息的。

    【讨论】:

    • 我们之前所做的是获取消息,将其转换为字节,然后使用 java 压缩库对其进行压缩,并将压缩后的字节设置为 BytesMessage 的正文。现在我们想试试这个拦截器,我们将消息的正文设置为文本,并可选地启用将为我们压缩消息正文的拦截器。
    猜你喜欢
    • 2012-04-24
    • 1970-01-01
    • 1970-01-01
    • 2022-11-15
    • 1970-01-01
    • 2012-10-09
    • 1970-01-01
    • 1970-01-01
    • 2012-06-28
    相关资源
    最近更新 更多