發送javax.jms.TextMessage過天青Servicebus我想從.NET發送一個簡單的字符串消息使用AMQP在蔚藍的服務總線Java客戶端。按照documentation我應該能夠發送通知代理的消息是這樣的:如何從.NET
message = new BrokeredMessage("this is a text string");
,並讓它在Java客戶端作爲一個TextMessage(javax.jms.TextMessage)顯示出來。但是,當我嘗試在Java中將消息強制轉換爲TextMessage時,我得到一個異常,說它不能將jms.impl.BytesMessageImpl轉換爲TextMessage。任何人都知道爲什麼消息看起來像BytesMessage而不是TextMessage?
按照docs一個BytesMessage將建成這樣的:
byte[] bytes = { 33, 12, 45, 33, 12, 45, 33, 12, 45, 33, 12, 45 };
message = new BrokeredMessage(bytes);
這我沒有做....
任何人都知道怎麼做這樣的事情?
[更新] 有趣的是,我測試了我的連接字符串中帶有和不帶TransportType = Amqp標識的發送代碼。我還驗證了運行時的代碼,MessagingFactory設置每次都設置爲正確的傳輸類型。無論我使用哪種傳輸類型的消息作爲BytesMessage到達我的Java應用程序。綜觀消息中的字節揭示了相同的結果,無論信息的發送方式:
@ string 3http://schemas.microsoft.com/2003/10/Serialization/�&BLABLA this is a message
[UPDATE2] 我想通了,我的問題的根本原因。在我的設置中,我有一個將消息轉發到隊列的訂閱者。看起來,這是消息越來越混亂的地方。如果我將AMQP消息直接發送到隊列,它將作爲TextMessage發送到我的Java應用程序。如果我通過AMQP將消息發送到我的主題,然後通過訂閱者(通過過濾器)將其轉發到我的隊列,它會變成BytesMessage。
那麼,如何得到這個正常工作?有沒有辦法設置我的用戶轉發到隊列,所以這個工作?
有關這方面的消息嗎? –