2012-02-06 2 views

ответ

8

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

MuleContext context = new DefaultMuleContextFactory().createMuleContext(); 
    MuleRegistry registry = context.getRegistry(); 

    EndpointBuilder testEndpointBuilder = new EndpointURIEndpointBuilder("vm://testFlow.in", 
     context); 
    testEndpointBuilder.setExchangePattern(MessageExchangePattern.REQUEST_RESPONSE); 
    registry.registerEndpointBuilder("testFlow.in", testEndpointBuilder); 

    InboundEndpoint vmInboundEndpoint = testEndpointBuilder.buildInboundEndpoint(); 
    registry.registerEndpoint(vmInboundEndpoint); 

    StringAppendTransformer stringAppendTransformer = new StringAppendTransformer(" world"); 
    stringAppendTransformer.setMuleContext(context); 

    Flow testFlow = new Flow("testFlow", context); 
    testFlow.setMessageSource(vmInboundEndpoint); 
    testFlow.setMessageProcessors(Arrays.asList((MessageProcessor) stringAppendTransformer)); 
    registry.registerFlowConstruct(testFlow); 

    context.start(); 

    MuleClient muleClient = new MuleClient(context); 
    MuleMessage response = muleClient.send("vm://testFlow.in", "hello", null); 
    Validate.isTrue(response.getPayloadAsString().equals("hello world")); 

    muleClient.dispose(); 
    context.stop(); 
+0

Привет, Дэвид, большое вам спасибо. Я думаю, нам нужен registry.initialise(); после context.getRegistry() - mule жалуется на отсутствие фазы жизни в противном случае. Работает очень хорошо! Необходимыми зависимостями являются: commons-beanutils, commons-collections, commons-io, commons-lang, commons-logging, commons-pool, dom4j, geronimo-j2ee-connector, jaxen, jug, который наряду с mule-embedded равен 5.6M - неплохо. – SorinS

+0

Странно, код работает как есть для меня (Mule 3.2.1). –

+0

Теперь это работает и для меня - у меня, должно быть, была какая-то зависимость, которая в какой-то момент вызвала ее. Еще раз спасибо. – SorinS

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