Je dois diviser la chaîne présente dans les en-têtes. Comment faire de ce tableau de chaînes en liste comme celle ci-dessous qui convertit la liste automatiquement.en-têtes - spel pour diviser la chaîne
@Value("#{'${plans}'.split(',')}")
private List<String> myList;
J'ai essayé comme ci-dessous mais ne fonctionne pas correctement.
<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>
d'intégration 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"));
Cela fonctionne très bien et les plans-tableau ont String [] mais juste obtenir l'erreur mentionnée ci-dessus dans la Mode débogage. –
Qu'est-ce que 'debug mode'? Comment pouvons-nous le reproduire localement? Merci –
Désolé pour la réponse tardive Artem. Je voulais dire les journaux de débogage. J'obtiens le tableau de String après split avec une virgule séparée. Veuillez suggérer la solution pour la question éditée. –