Spring integration spring集成在发送到订阅者时会丢失头

Spring integration spring集成在发送到订阅者时会丢失头,spring-integration,Spring Integration,我正在使用spring与hornetQ的集成。问题是我在消息(方法)中放置了一个自定义头,但是当它到达订阅者时,头不再可用。我需要设置一些配置属性来保留标题吗 应用程序接收消息(我可以在控制台日志中看到方法头,因此我知道它实际上得到了正确的消息)。它基本上只是将消息路由到出站队列,以便客户端可以订阅它(如果有更干净的方法,请让我知道) 您的问题不在DefaultJmsHeaderMapper.fromHeaders中吗: if (value != null && SUPPORTE

我正在使用spring与hornetQ的集成。问题是我在消息(方法)中放置了一个自定义头,但是当它到达订阅者时,头不再可用。我需要设置一些配置属性来保留标题吗

应用程序接收消息(我可以在控制台日志中看到
方法
头,因此我知道它实际上得到了正确的消息)。它基本上只是将消息路由到出站队列,以便客户端可以订阅它(如果有更干净的方法,请让我知道)


您的问题不在
DefaultJmsHeaderMapper.fromHeaders
中吗:

if (value != null && SUPPORTED_PROPERTY_TYPES.contains(value.getClass())) {
                    try {
                        String propertyName = this.fromHeaderName(headerName);
                        jmsMessage.setObjectProperty(propertyName, value);
                    }
其中
支持的属性类型为:

private static List<Class<?>> SUPPORTED_PROPERTY_TYPES = Arrays.asList(new Class<?>[] {
        Boolean.class, Byte.class, Double.class, Float.class, Integer.class, Long.class, Short.class, String.class });

private static list您确实是对的。我正在传递一个枚举值,但它未能序列化为字符串(尽管它将使用toString()方法)。当传递HttpMethod.POST.name()时,它起作用了。
@ServiceActivator(inputChannel = "partsInboundChannel")
public void processPart(final Message message) {
   ...message.getHeaders does not contain the "Method" header 
}
if (value != null && SUPPORTED_PROPERTY_TYPES.contains(value.getClass())) {
                    try {
                        String propertyName = this.fromHeaderName(headerName);
                        jmsMessage.setObjectProperty(propertyName, value);
                    }
private static List<Class<?>> SUPPORTED_PROPERTY_TYPES = Arrays.asList(new Class<?>[] {
        Boolean.class, Byte.class, Double.class, Float.class, Integer.class, Long.class, Short.class, String.class });