Okay. Thank you update and for creating an JIRA ticket. I see it is already resolved. However, in order to test it locally on my dev environment, i cannot find the artifactory where i could download the changes from this ticket https://issues.apache.org/jira/browse/CAMEL-11945
Where can i get the camel 2.21.0-snapshot or 2.20.1-snapshot artifactory? On Wed, Oct 25, 2017 at 12:01 PM, Claus Ibsen <[email protected]> wrote: > Hi > > See ticket > https://issues.apache.org/jira/browse/CAMEL-11945 > > On Tue, Oct 24, 2017 at 3:36 PM, Dicken George <[email protected]> > wrote: > > Dear Fellow Developers, > > > > Just recently, I tried to upgrade my camel-spring boot project form camel > > 2.19.3 to camel 2.20.0 and I face the problem that, I cannot boot up my > > application any more, and I get the following stack trace > > > > java.lang.NullPointerException > > at > > com.haufe.ssmp.sfdc.api.app.BeanConfiguration.afterApplicationStart( > BeanConfiguration.java:66) > > at > > org.apache.camel.spring.boot.RoutesCollector.onApplicationEvent( > RoutesCollector.java:226) > > at > > org.apache.camel.spring.boot.RoutesCollector.onApplicationEvent( > RoutesCollector.java:54) > > at > > org.springframework.context.event.SimpleApplicationEventMulticas > ter.doInvokeListener(SimpleApplicationEventMulticaster.java:172) > > at > > org.springframework.context.event.SimpleApplicationEventMulticas > ter.invokeListener(SimpleApplicationEventMulticaster.java:165) > > at > > org.springframework.context.event.SimpleApplicationEventMulticas > ter.multicastEvent(SimpleApplicationEventMulticaster.java:139) > > at > > org.springframework.context.support.AbstractApplicationContext. > publishEvent(AbstractApplicationContext.java:393) > > at > > org.springframework.context.support.AbstractApplicationContext. > publishEvent(AbstractApplicationContext.java:347) > > at > > org.springframework.context.support.AbstractApplicationContext. > finishRefresh(AbstractApplicationContext.java:883) > > at > > org.springframework.boot.context.embedded.EmbeddedWebApplicationContext. > finishRefresh(EmbeddedWebApplicationContext.java:144) > > at > > org.springframework.context.support.AbstractApplicationContext.refresh( > AbstractApplicationContext.java:546) > > at > > org.springframework.boot.context.embedded.EmbeddedWebApplicationContext. > refresh(EmbeddedWebApplicationContext.java:122) > > at > > org.springframework.boot.SpringApplication.refresh( > SpringApplication.java:693) > > at > > org.springframework.boot.SpringApplication.refreshContext( > SpringApplication.java:360) > > at > > org.springframework.boot.SpringApplication.run( > SpringApplication.java:303) > > at > > org.springframework.boot.SpringApplication.run( > SpringApplication.java:1118) > > at > > org.springframework.boot.SpringApplication.run( > SpringApplication.java:1107) > > at com.haufe.ssmp.sfdc.api.Application.main(Application.java:12) > > > > Due to my complex use case, i would like to start one specific route > > manually and not use the autoconfiguration and autostart from > camelcontext. > > I do this in my configuration class by over riding the before application > > start and after application start methods. > > > > @Configuration > > class BeanConfiguration implements CamelContextConfiguration { > > private static final Logger log = > > LoggerFactory.getLogger(BeanConfiguration.class); > > > > @Override > > public void beforeApplicationStart(CamelContext camelContext) { > > camelContext.setPackageScanClassResolver(new > > FatJarPackageScanClassResolver()); > > camelContext.resolveDataFormat("json-jackson"); > > } > > > > @Autowired > > SalesforceComponent sfdcComp; > > > > @Override > > public void afterApplicationStart(CamelContext camelContext) { > > > > try { > > sfdcComp.start(); > > camelContext.startRoute("salesforce-versions"); > > Route theRoute = camelContext.getRoute(" > salesforce-versions"); > > Endpoint ep = theRoute.getEndpoint(); > > > > Exchange exchange = ep.createExchange(); > > ProducerTemplate template = > > exchange.getContext().createProducerTemplate(); > > DefaultExchange o = (DefaultExchange) template.request(ep, > new > > Processor() { > > > > @Override > > public void process(Exchange exchange) throws Exception { > > // TODO Auto-generated method stub > > > > } > > }); > > Object result = o.getOut().getBody(); > > if(result == null && !(result instanceof ArrayList)) > > throw new Exception("No Salesforce version, login > > failed."); > > > > ArrayList theList = (ArrayList) result; > > if(theList.size() <= 1) > > throw new Exception("No Salesforce version got, login > > failed."); > > log.debug("Connection to salesforce successfully > established:"); > > > > } catch (Exception e) { > > // TODO Auto-generated catch block > > e.printStackTrace(); > > throw new RuntimeException("No Connection to salesforce"); > > } > > > > } > > In this code, i saw during my debugging that it was able to start the > > routes in camelcontext object and get the endpoints, however with version > > 2.20.0 I see my routes are not added to the camelcontext and no routes > are > > started. > > > > Could anyone help me here to trouble shoot this issue ? > > > > Thanks in advance > > -- > > > > Dicken George > > > > -- > Claus Ibsen > ----------------- > http://davsclaus.com @davsclaus > Camel in Action 2: https://www.manning.com/ibsen2 > -- Dicken George
