You need to make sure there is route which has from(“direct:itemExport”) started first.
-- Willem Jiang Red Hat, Inc. Web: http://www.redhat.com Blog: http://willemjiang.blogspot.com(http://willemjiang.blogspot.com/) (English) http://jnn.iteye.com(http://jnn.javaeye.com/) (Chinese) Twitter: willemjiang Weibo: 姜宁willem On December 12, 2013 at 5:19:11 PM, richie.rivi...@gmail.com (richie.rivi...@gmail.com) wrote: > > Hi guys, > > Thanks for the advice on a previous post asking about how to change > the > route of an application for the purposes of testing. Since that > time I have > gone and done some research into using adviceWith and given it > a go. It > seems to be working for me but I'm getting an error whilst executing > the > unit test and I'm not sure what it means. > > I am trying to use adviceWith to replace the JPA select from the > database > and just give camel an entity bean that I have created. > > The error is .... > > Caused by: > org.apache.camel.component.direct.DirectConsumerNotAvailableException: > No > consumers available on endpoint: Endpoint[direct://itemExport]. > Exchange[Message: ImportPayloadEntity[ id:999 ] > > The original route in my application looks like this... > > from("direct:itemExport") > .routeId("itemExportMagento") > .autoStartup("{{item.export.magento}}") > .startupOrder(2) > .shutdownRoute(ShutdownRoute.Defer) > .errorHandler(deadLetterChannel("log:dead") > .maximumRedeliveries(5) > .retryAttemptedLogLevel(LoggingLevel.ERROR)) > .pollEnrich("jpa://org.apache.camel.auski.etl.entity.ImportPayloadEntity?consumer.namedQuery=queryImportPayloads&consumeDelete=false&delay=3000&consumeLockEntity=false") > > .to("itemExportMagentoFromSourceHeaderProcessor") > .to("bean:serviceBean?method=login") > .to("itemExportMagentoFromLoginBodyProcessor") > .split().method("splitterService","magentoUowSplit") > .to("itemExportMagentoActivityCodeProcessor") > > and my unit test looks like this... > > public class ItemExportMagentoRouteTest extends CamelSpringTestSupport > { > @Override > protected AbstractApplicationContext createApplicationContext() > { > return new > ClassPathXmlApplicationContext("META-INF/spring/camel-context.xml"); > } > @Override > public boolean isUseAdviceWith() { > return true; > } > @Test > public void testExportRoute() throws Exception { > context.getRouteDefinition("itemExportMagento").adviceWith(context, > new > AdviceWithRouteBuilder() { > @Override > public void configure() throws Exception { > weaveByType(PollEnrichDefinition.class).remove(); > } > }); > context.startRoute("itemExportMagento"); > > ImportPayloadEntity importPayloadEntity = new ImportPayloadEntity(); > importPayloadEntity.setId(new Long(999)); > importPayloadEntity.setFilename("MinderTest.xml"); > > Collection items = new ArrayList(); > ItemEntity itemEntity = createItem(importPayloadEntity); > items.add(itemEntity); > importPayloadEntity.setItems(items); > > template.sendBody("direct:itemExport", importPayloadEntity); > } > > I am using Camel 2.11.0. I'm thinking maybe it is something to > do with the > way I'm doing template.sendBody("direct:itemExport", importPayloadEntity); > ? > > Has anyone got any thoughts? > > thanks > > > > -- > View this message in context: > http://camel.465427.n5.nabble.com/First-CamelSpringTestSupport-unit-test-AdviceWith-No-consumers-available-on-endpoint-tp5744656.html > > Sent from the Camel - Users mailing list archive at Nabble.com. >