2010-01-27 31 views
0

我正在圍繞JMS API爲我的一個項目構建一個小型API。本質上,我們正在構建處理連接邏輯的代碼,並通過提供像Client.send(String message)這樣的方法來簡化發佈消息。解決Java中的MessageNotReadableException

現在正在討論的想法之一是我們提供了一種方法讓用戶將攔截器附加到此客戶端。我們將在準備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

看起來您的JMS客戶端嘗試讀取只寫消息。你的攔截器不能以這種方式工作,請詳細說明你如何在早期壓縮信息。

+0

我們之前所做的是接收消息,將其轉換爲字節,然後使用java壓縮庫對其進行壓縮,並將壓縮字節設置爲BytesMessage的主體。 現在我們要試試這個攔截器,我們將消息的主體設置爲文本,並且可以選擇啓用攔截器,它將爲我們壓縮消息的正文。 – Hari 2010-01-27 17:08:58