2013-10-06 39 views
0

我有一個使用Solace作爲消息代理的Spring集成應用程序。應用程序正在工作 - 消息在隊列中被接收,然後正確放置在主題上 - 但是當創建消息時,會引發以下錯誤消息。我試圖弄清楚爲什麼會發生這種情況。彈簧集成:使用SOLACE時出現的身份不明的錯誤消息

03:31:12.479 [taskExecutor-8] WARN o.s.i.jms.DefaultJmsHeaderMapper - failed to map Message header 'JMS_Solace_TopicSequenceNumber' to JMS property 
java.lang.IllegalArgumentException: Property SOLACE_JMS_PROP_TOPIC_SEQUENCE_NUMBER is not settable on a message 
    at com.solacesystems.jms.message.SolMessage.setObjectProperty(SolMessage.java:486) ~[sol-jms-6.0.0.146.jar:na] 
    at org.springframework.integration.jms.DefaultJmsHeaderMapper.fromHeaders(DefaultJmsHeaderMapper.java:131) [spring-integration-jms-2.2.0.RC2.jar:na] 
    at org.springframework.integration.jms.DefaultJmsHeaderMapper.fromHeaders(DefaultJmsHeaderMapper.java:53) [spring-integration-jms-2.2.0.RC2.jar:na] 
    at org.springframework.integration.jms.JmsSendingMessageHandler$HeaderMappingMessagePostProcessor.postProcessMessage(JmsSendingMessageHandler.java:162) [spring-integration-jms-2.2.0.RC2.jar:na] 
    at org.springframework.jms.core.JmsTemplate$8.createMessage(JmsTemplate.java:656) [spring-jms-3.1.2.RELEASE.jar:3.1.2.RELEASE] 
    at org.springframework.jms.core.JmsTemplate.doSend(JmsTemplate.java:565) [spring-jms-3.1.2.RELEASE.jar:3.1.2.RELEASE] 
    at org.springframework.jms.core.JmsTemplate$4.doInJms(JmsTemplate.java:546) [spring-jms-3.1.2.RELEASE.jar:3.1.2.RELEASE] 
    at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:466) [spring-jms-3.1.2.RELEASE.jar:3.1.2.RELEASE] 
    at org.springframework.jms.core.JmsTemplate.send(JmsTemplate.java:543) [spring-jms-3.1.2.RELEASE.jar:3.1.2.RELEASE] 
    at org.springframework.jms.core.JmsTemplate.convertAndSend(JmsTemplate.java:653) [spring-jms-3.1.2.RELEASE.jar:3.1.2.RELEASE] 
    at org.springframework.integration.jms.JmsSendingMessageHandler.send(JmsSendingMessageHandler.java:142) [spring-integration-jms-2.2.0.RC2.jar:na] 
    at org.springframework.integration.jms.JmsSendingMessageHandler.handleMessageInternal(JmsSendingMessageHandler.java:112) [spring-integration-jms-2.2.0.RC2.jar:na] 
    at org.springframework.integration.handler.AbstractMessageHandler.handleMessage(AbstractMessageHandler.java:73) [spring-integration-core-2.2.0.RC2.jar:na] 
    at org.springframework.integration.dispatcher.UnicastingDispatcher.doDispatch(UnicastingDispatcher.java:115) [spring-integration-core-2.2.0.RC2.jar:na] 
    at org.springframework.integration.dispatcher.UnicastingDispatcher.access$000(UnicastingDispatcher.java:52) [spring-integration-core-2.2.0.RC2.jar:na] 
    at org.springframework.integration.dispatcher.UnicastingDispatcher$1.run(UnicastingDispatcher.java:97) [spring-integration-core-2.2.0.RC2.jar:na] 
    at org.springframework.integration.util.ErrorHandlingTaskExecutor$1.run(ErrorHandlingTaskExecutor.java:52) [spring-integration-core-2.2.0.RC2.jar:na] 
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) [na:1.6.0_06] 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [na:1.6.0_06] 
    at java.lang.Thread.run(Unknown Source) [na:1.6.0_06] 

任何幫助是極大的讚賞

+0

你可以反編譯solacesystems類,看看哪些屬性適合設置到SolMessage?你可以配置你自己的'DefaultJmsHeaderMapper'或者使用''嗎? –

回答

0

我不熟悉SOLACE,但它聽起來像有入站消息的只讀屬性。默認情況下,所有屬性都可用作SI標頭,同樣,我們嘗試將SI標頭映射到JMS屬性(如果它們是簡單類型)。

這只是一個警告 - 你可以

  • 忽略它 - 將日誌級別設置爲映射到ERROR
  • 使用自定義標題映射器跳過它
  • DefaultJmsHeaderMapper設置一個outboundPrefix從而使財產得到一個不同的名稱
  • 出站適配器之前添加<header-filter/>將其刪除