CamelBeanPostProcessor.camelContext cannot be injected if SpringCamelContext is
proxied (e.g. AOP)
--------------------------------------------------------------------------------------------------
Key: CAMEL-494
URL: https://issues.apache.org/activemq/browse/CAMEL-494
Project: Apache Camel
Issue Type: Bug
Components: camel-spring
Affects Versions: 1.3.0
Reporter: Dean Thompson
Because CamelBeanPostProcessor.setCamelContext(SpringCamelContext) takes the
class SpringCamelContext as its parameter, bean initialization fails if
SpringCamelContext is proxied. The error is as follows:
org.springframework.beans.factory.BeanCreationException: Error creating bean
with name 'camelContext:beanPostProcessor': Initialization of bean failed;
nested exception is org.springframework.beans.TypeMismatchException: Failed to
convert property value of type [$Proxy61] to required type
[org.apache.camel.spring.SpringCamelContext] for property 'camelContext';
nested exception is java.lang.IllegalArgumentException: Cannot convert value of
type [$Proxy61] to required type [org.apache.camel.spring.SpringCamelContext]
for property 'camelContext': no matching editors or conversion strategy found
In my project's Spring conf, we declare <aop:aspectj-autoproxy/>, which causes
all Spring beans to be proxied. This triggers the problem shown above. The
problem should be reproducible by adding <aop:aspectj-autoproxy/> to any Spring
config that uses <camel:camelContext>.
The fix will be to separate the interface and class for SpringCamelContext, and
use the interface where appropriate.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.