Ich muss die Zeichenfolge in den Headern aufgeteilt teilen.Header - spel, um die Zeichenfolge zu teilen
<int:header name="plans-array" expression="headers['plans'].split(',')"/>
Wie Sie dieses String-Array in Liste wie die unten, die die Liste konvertiert automatisch machen.
Ich habe versucht, wie unten, aber nicht richtig funktioniert.
<int:header name="plans-list" expression="T(java.util.Arrays).asList(headers['plans'].split(','))"/>
Integration 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"));
Dies funktioniert gut und Pläne-Array String [], aber nur den Fehler, der oben in den erwähnten bekommen Debug-Modus. –
Was ist 'Debug-Modus'? Wie können wir es lokal reproduzieren? Danke –
Sorry für die späte Antwort Artem. Ich meinte Debug-Protokolle. Ich bekomme das Array von String nach der Trennung mit Komma getrennt. Bitte schlagen Sie die Lösung für die bearbeitete Frage vor. –