Мне нужно разбить строку, присутствующую в заголовках.headers - spel для разделения строки
<int:header name="plans-array" expression="headers['plans'].split(',')"/>
Как сделать этот массив строк в списке похожим на приведенный ниже, который автоматически преобразует список.
@Value("#{'${plans}'.split(',')}")
private List<String> myList;
Я пробовал, как показано ниже, но работает некорректно.
<int:header name="plans-list" expression="T(java.util.Arrays).asList(headers['plans'].split(','))"/>
интеграции XML
<int:channel id="splitChannel"/>
<int:header-enricher input-channel="splitChannel">
<int:header name="isPlanExist" expression="T(java.util.Arrays).asList((headers['plans'].split(','))).contains('plan1')"/>
</int:header-enricher>
JUnit
@Autowired
@Qualifier("splitChannel")
private MessageChannel splitChannel;
@Test
public void testSplit() {
String somePayload = "somePayload";
Message<String> stringPayload = MessageBuilder.withPayload(somePayload)
.setHeader("plans", "plan1,plan2")
.build();
MessagingTemplate template = new MessagingTemplate();
Assert.assertEquals(true, template.sendAndReceive(this.splitChannel, stringPayload).getHeaders().get("isPlanExist"));
Это прекрасно работает и планы-массив имеет String [], но только получает ошибку, упомянутую выше в режим отладки. –
Что такое 'debug mode'? Как мы можем воспроизвести его локально? Спасибо –
Извините за поздний ответ Артем. Я имел в виду отладочные журналы. Я получаю массив String после разделения с разделенной запятой. Пожалуйста, предложите решение для отредактированного вопроса. –