2015-12-03 2 views
0

У меня есть полезная информация сообщения с заголовками x, y, z Я хочу удалить полезную нагрузку и сделать новую полезную нагрузку в качестве значения заголовка y и сохранить заголовки xyz intact.I am try this с помощью заводной .messagePayload является строка JSON, который является значением заголовка уобмениваться заголовком с полезной нагрузкой и сохранять заголовки неповрежденными

Мой новое сообщение = х заголовок полезной нагрузки х + , где полезная нагрузка = заголовок valueof у

def messagePayload = parser.parseText(headers['y']) 

def newHeaders = [:] 
newHeaders.putAll(headers) 
return org.springframework.messaging.support.MessageBuilder.withPayload(messagePayload.toString()).copyHeaders(newHeaders).build()​ 

ответ

1

??

newHeaders['y'] = messagePayload.toString() просто заменив headers['y'] с его собственным значением (toString()), определяемой def messagePayload = parser.parseText(headers['y'])

Вы не показывают достаточно кода, но вам нужно что-то вроде

newHeaders['y'] = originalPayload 

EDIT

Вы сказали, что хотите обменять заголовок с полезной нагрузкой. Если все, что вам нужно сделать, это скопировать полезную нагрузку к заголовку, использовать заголовок обогатитель

<int:header-enricher> 
    <int:header name="y" expression="payload" /> 
</int:header-enricher> 

Если вы хотите сделать это в коде ...

MessageBuilder.fromMessage(message).setHeader("y", message.getPayload()).build; 

EDIT2

Ваш вопрос все еще не ясен; какой parser.parseText(headers['y']) сделать?

Если вы просто хотите, чтобы заменить полезную нагрузку сообщения с одним из значений заголовка, используйте преобразование:

<int:transform ... expression="headers['y']" /> 

заголовки остаются неизменными.

Если вы хотите, чтобы записать его в Java

MessageBuilder.withPayload(headers.get("y")).copyHeaders(headers).build(); 

Я думаю, в заводной это

MessageBuilder.withPayload(headers.['y']).copyHeaders(headers).build(); 
+0

Я хотел, чтобы скопировать значение в заголовочном у как новый полезной нагрузки. и сохранить все значения заголовков неповрежденными – constantlearner

+0

В названии говорится, что вы хотите обменять заголовок и полезную нагрузку - см. мое редактирование, если все, что вы хотите сделать, это скопировать заголовок. –

+0

Извините, может быть, я сформулировал вопрос неправильно. Я обновил свой вопрос, пожалуйста, см. Выше. – constantlearner

Смежные вопросы