我正在为我的项目围绕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)
}
我们之一的intrerceptors是压缩消息体。但是当我们尝试在拦截器中读取消息的主体时,我们得到一个MessageNotReadableException。在过去,我通常在将内容设置为消息正文之前压缩内容 - 所以永远不必担心这个异常。
有没有办法绕过这个例外?
答案 0 :(得分:0)
看起来您的JMS客户端尝试读取只写消息。您的拦截器无法以这种方式工作,请详细说明您之前是如何压缩消息的。