【发布时间】: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。过去,我通常在将内容设置为消息正文之前对其进行压缩 - 因此不必担心此异常。
有没有办法绕过这个异常?
【问题讨论】: