NullPointerException when defining Camel route using Spring JavaConfig
----------------------------------------------------------------------
Key: CAMEL-2027
URL: https://issues.apache.org/activemq/browse/CAMEL-2027
Project: Apache Camel
Issue Type: Bug
Components: camel-spring
Affects Versions: 2.0.0
Reporter: Dragisa Krsmanovic
Following unit test fails.
Similar test, but using Spring XML with <routeBuilder ref="..."/> instead of
Spring JavaConfig, would succeed.
{code}
@ContextConfiguration(
locations = "org.plos.camel.BeanJavaConfigTest$ContextConfig",
loader = JavaConfigContextLoader.class
)
public class BeanJavaConfigTest extends AbstractTestNGSpringContextTests {
@EndpointInject(uri = "mock:end")
protected MockEndpoint endpoint;
@EndpointInject(uri = "mock:error")
protected MockEndpoint errorEndpoint;
@Produce(uri = "direct:start")
protected ProducerTemplate producer;
@Test
@DirtiesContext
public void testSomething() throws Exception {
endpoint.expectedMessageCount(1);
endpoint.message(0).body().isEqualTo("Message Body");
producer.sendBody("Message Body");
endpoint.assertIsSatisfied();
}
public static class SomeBean {
@Handler
public String someMethod(String body) {
System.out.println("Received: " + body);
return body;
}
}
@Configuration
public static class ContextConfig extends SingleRouteCamelConfiguration {
@Bean
@Override
public RouteBuilder route() {
return new RouteBuilder() {
@Override
public void configure() throws Exception {
from("direct:start")
.bean(new SomeBean())
.to("mock:end")
.errorHandler(deadLetterChannel("mock:end"));
}
};
}
}
}
{code}
Error stack:
{noformat}
java.lang.IllegalStateException: Failed to load ApplicationContext
...
Caused by: java.lang.NullPointerException
at
org.apache.camel.spring.spi.ApplicationContextRegistry.lookup(ApplicationContextRegistry.java:41)
at
org.apache.camel.component.bean.BeanInfo.createParameterMappingStrategy(BeanInfo.java:115)
at
org.apache.camel.component.bean.BeanProcessor.<init>(BeanProcessor.java:55)
at
org.apache.camel.model.BeanDefinition.createProcessor(BeanDefinition.java:156)
at
org.apache.camel.model.ProcessorDefinition.makeProcessor(ProcessorDefinition.java:276)
at
org.apache.camel.model.ProcessorDefinition.addRoutes(ProcessorDefinition.java:116)
at
org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:439)
at
org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:126)
at
org.apache.camel.impl.DefaultCamelContext.startRoute(DefaultCamelContext.java:569)
at
org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:924)
at
org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:901)
at
org.apache.camel.spring.SpringCamelContext.maybeDoStart(SpringCamelContext.java:165)
at
org.apache.camel.spring.SpringCamelContext.doStart(SpringCamelContext.java:160)
at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:52)
at
org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:816)
at
org.apache.camel.spring.SpringCamelContext.maybeStart(SpringCamelContext.java:99)
at
org.apache.camel.spring.SpringCamelContext.afterPropertiesSet(SpringCamelContext.java:87)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1369)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1335)
... 74 more
{noformat}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.