[ 
https://issues.apache.org/activemq/browse/CAMEL-1055?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=47134#action_47134
 ] 

Claus Ibsen commented on CAMEL-1055:
------------------------------------

I think the error is caught and handled by Spring and report as Spring does it 
by standard.

Do you have any suggestions for a more concise exception?

> Error message when incorrectly starting Camel is misleading
> -----------------------------------------------------------
>
>                 Key: CAMEL-1055
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-1055
>             Project: Apache Camel
>          Issue Type: Improvement
>    Affects Versions: 1.5.0
>            Reporter: Noah Nordrum
>            Priority: Minor
>
> Yes, I know you should just do things correctly, but sometimes we don't. When 
> the CamelContext is created/retrieved as follows, the error message is 
> somewhat misleading as to the actual problem. The root exception does state 
> "No applicationContext has been injected!", but the bulk of the other 
> exceptions are referring to the "beanPostProcessor".
> If we could somehow throw a more concise exception, that would be great.
> #
> import org.springframework.core.io.Resource;
> #
> import org.springframework.core.io.ClassPathResource;
> #
> import org.springframework.beans.factory.BeanFactory;
> #
> import org.springframework.beans.factory.xml.XmlBeanFactory;
> #
> import org.apache.camel.CamelContext;
> #
>  
> #
> public class JamesTest {
> #
>  
> #
>     public static void main(String[] args) {
> #
>         Resource res = new ClassPathResource("/james.xml");
> #
>         BeanFactory factory = new XmlBeanFactory(res);
> #
>  
> #
>         final CamelContext cc = (CamelContext) 
> factory.getBean("camelContext");
> #
>  
> #
>     }
> #
> }
> #
>  
> #
>  
> #
>  
> #
> james.xml
> #
> <?xml version="1.0" encoding="UTF-8"?>
> #
> <beans xmlns="http://www.springframework.org/schema/beans";
> #
>        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
> #
>        xmlns:context="http://www.springframework.org/schema/context";
> #
>        xmlns:camel="http://activemq.apache.org/camel/schema/spring";
> #
>        xsi:schemaLocation="
> #
>       http://www.springframework.org/schema/beans
> #
>       http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
> #
>       http://www.springframework.org/schema/context
> #
>       http://www.springframework.org/schema/context/spring-context-2.5.xsd
> #
>       http://activemq.apache.org/camel/schema/spring
> #
>       http://activemq.apache.org/camel/schema/spring/camel-spring.xsd";>
> #
>  
> #
>     <camel:camelContext id="camelContext">
> #
>     </camel:camelContext>
> #
>  
> #
> </beans>
> #
>  
> #
>  
> #
> stack
> #
> INFO  - XmlBeanDefinitionReader    - Loading XML bean definitions from class 
> path resource [james.xml]
> #
> Exception in thread "main" 
> org.springframework.beans.factory.BeanCreationException: Error creating bean 
> with name 'camelContext': Cannot resolve reference to bean 
> 'camelContext:beanPostProcessor' while setting bean property 
> 'beanPostProcessor'; nested exception is 
> org.springframework.beans.factory.BeanCreationException: Error creating bean 
> with name 'camelContext:beanPostProcessor': Cannot resolve reference to bean 
> 'camelContext' while setting bean property 'camelContext'; nested exception 
> is org.springframework.beans.factory.BeanCreationException: Error creating 
> bean with name 'camelContext': FactoryBean threw exception on object 
> creation; nested exception is java.lang.IllegalArgumentException: No 
> applicationContext has been injected!
> #
>         at 
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:275)
> #
>         at 
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:104)
> #
>         at 
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1245)
> #
>         at 
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1010)
> #
>         at 
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:472)
> #
>         at 
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
> #
>         at java.security.AccessController.doPrivileged(Native Method)
> #
>         at 
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
> #
>         at 
> org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
> #
>         at 
> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:221)
> #
>         at 
> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
> #
>         at 
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
> #
>         at 
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
> #
>         at JamesTest.main(JamesTest.java:13)
> #
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> #
>         at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> #
>         at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> #
>         at java.lang.reflect.Method.invoke(Method.java:585)
> #
>         at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90)
> #
> Caused by: org.springframework.beans.factory.BeanCreationException: Error 
> creating bean with name 'camelContext:beanPostProcessor': Cannot resolve 
> reference to bean 'camelContext' while setting bean property 'camelContext'; 
> nested exception is org.springframework.beans.factory.BeanCreationException: 
> Error creating bean with name 'camelContext': FactoryBean threw exception on 
> object creation; nested exception is java.lang.IllegalArgumentException: No 
> applicationContext has been injected!
> #
>         at 
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:275)
> #
>         at 
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:104)
> #
>         at 
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1245)
> #
>         at 
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1010)
> #
>         at 
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:472)
> #
>         at 
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
> #
>         at java.security.AccessController.doPrivileged(Native Method)
> #
>         at 
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
> #
>         at 
> org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
> #
>         at 
> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:221)
> #
>         at 
> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
> #
>         at 
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
> #
>         at 
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
> #
>         at 
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:269)
> #
>         ... 18 more
> #
> Caused by: org.springframework.beans.factory.BeanCreationException: Error 
> creating bean with name 'camelContext': FactoryBean threw exception on object 
> creation; nested exception is java.lang.IllegalArgumentException: No 
> applicationContext has been injected!
> #
>         at 
> org.springframework.beans.factory.support.FactoryBeanRegistrySupport$1.run(FactoryBeanRegistrySupport.java:127)
> #
>         at java.security.AccessController.doPrivileged(Native Method)
> #
>         at 
> org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:116)
> #
>         at 
> org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:98)
> #
>         at 
> org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1285)
> #
>         at 
> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:217)
> #
>         at 
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
> #
>         at 
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
> #
>         at 
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:269)
> #
>         ... 31 more
> #
> Caused by: java.lang.IllegalArgumentException: No applicationContext has been 
> injected!
> #
>         at 
> org.apache.camel.spring.CamelContextFactoryBean.getApplicationContext(CamelContextFactoryBean.java:354)
> #
>         at 
> org.apache.camel.spring.CamelContextFactoryBean.createContext(CamelContextFactoryBean.java:473)
> #
>         at 
> org.apache.camel.spring.CamelContextFactoryBean.getContext(CamelContextFactoryBean.java:305)
> #
>         at 
> org.apache.camel.spring.CamelContextFactoryBean.getObject(CamelContextFactoryBean.java:130)
> #
>         at 
> org.springframework.beans.factory.support.FactoryBeanRegistrySupport$1.run(FactoryBeanRegistrySupport.java:121)
> #
>         ... 39 more
> #
>  

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to