Java中MessageNotReadableException的解决方法
我正在为我的一个项目围绕JMS api构建一个小api。本质上,我们正在构建处理连接逻辑的代码,并通过提供类似Client.send(String message)的方法简化消息发布 目前正在讨论的一个想法是,我们为用户提供了一种将拦截器连接到此客户端的方法。我们将在准备JMS消息之后和发布它之前应用拦截器 例如,如果我们想给一条消息加时间戳,并为此编写一个拦截器,那么我们将这样应用它Java中MessageNotReadableException的解决方法,java,jms,Java,Jms,我正在为我的一个项目围绕JMS api构建一个小api。本质上,我们正在构建处理连接逻辑的代码,并通过提供类似Client.send(String message)的方法简化消息发布 目前正在讨论的一个想法是,我们为用户提供了一种将拦截器连接到此客户端的方法。我们将在准备JMS消息之后和发布它之前应用拦截器 例如,如果我们想给一条消息加时间戳,并为此编写一个拦截器,那么我们将这样应用它 ...some code ... Message message = session.createMessa
...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。在过去,我通常在将内容设置为消息正文之前对其进行压缩,因此不必担心这种异常
有没有办法绕过此异常?您的JMS客户端似乎试图读取一条只写消息。您的拦截器无法以这种方式工作,请详细说明您之前是如何压缩消息的 我们之前所做的是获取消息,将其转换为字节,然后使用java压缩库对其进行压缩,并将压缩的字节设置为ByteMessage的主体。现在,我们想尝试这个拦截器,将消息体设置为文本,并可选地启用拦截器,它将为我们压缩消息体。