【问题标题】:CWSIA0112E: The property name Keep-Alive is not a valid Java identifierCWSIA0112E: 属性名 Keep-Alive 不是有效的 Java 标识符
【发布时间】:2018-11-09 12:42:04
【问题描述】:

我看到所有带有连字符的标题属性的大量日志 -

[30-5-18 17:13:14:321 CEST] 00001622 SystemOut O WARN [integration.jms.DefaultJmsHeaderMapper] 无法映射消息头 JMS 属性 javax.jms.MessageFormatException 的“保持活动”: CWSIA0112E: 属性名称 Keep-Alive 不是有效的 Java 标识符。

[30-5-18 17:13:14:321 CEST] 00001622 SystemOut O WARN [integration.jms.DefaultJmsHeaderMapper] 无法映射消息头 'Transfer-Encoding' 到 JMS 属性 javax.jms.MessageFormatException: CWSIA0112E: 属性名称 Transfer-Encoding 不是有效的 Java 标识符。

如何解决所有这些错误和警告 自定义标头映射器有帮助吗,有什么例子吗? 使用 Spring boot 1.4.3 和集成版本 4.3.6。在 websphere 默认 JMS 提供程序 8.5.x 上运行的应用程序

谢谢

【问题讨论】:

    标签: spring-boot jms spring-integration outbound


    【解决方案1】:

    我认为该错误意味着您不能在属性名称中使用破折号。

    您需要使用HeaderEnricher 将这个Keep-Alive 重新映射为KeepAlive 之类的东西,然后使用HeaderFilter 将其删除。

    【讨论】:

    • 谢谢阿特姆。你能举个例子吗。我认为这个问题是因为 spring jms 和 java jms 之间的差异。有些像 jms_type 和其他是 JMSType 类型的格式
    • Spring JMS 没有问题,因为它只是围绕标准 Java JMS 的 Spring API。 IBM JMS 供应商的问题。我相信它只是不喜欢Keep-Alive 名称中的破折号(-)符号。这就是为什么我建议您将其重新映射到其他东西或将其丢弃,如果您可以在下游没有它生活的话。
    • 好的。谢谢阿尔乔姆。添加了一个新频道。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-07
    • 1970-01-01
    • 2011-09-08
    • 2011-09-14
    • 2012-01-26
    相关资源
    最近更新 更多