Java 无法在xml文件中解析驼峰路由

Java 无法在xml文件中解析驼峰路由,java,apache-camel,java-11,spring5,Java,Apache Camel,Java 11,Spring5,我正在从Java8升级到Java11。 甚至之前使用的Spring版本也是4.x,现在我已经升级到Spring5.x 我使用骆驼路线 我的camel上下文文件如下 <bean id="samplePriceBean" class="com.abc.SamplePriceBean"> <constructor-arg index="0" ref="route1" /> <constructor-arg index="1

我正在从Java8升级到Java11。 甚至之前使用的Spring版本也是4.x,现在我已经升级到Spring5.x

我使用骆驼路线

我的camel上下文文件如下

 <bean id="samplePriceBean"
    class="com.abc.SamplePriceBean">
    <constructor-arg index="0"
        ref="route1" />
        <constructor-arg index="1"
        ref="route2" />
    <constructor-arg index="2"
        ref="myCamelContext" />
    <constructor-arg index="3" value="route1" />
    <constructor-arg index="4" value="route1" />
</bean>
<camelContext id="myCamelContext" xmlns="http://camel.apache.org/schema/spring">
    <route id="listRoute" autoStartup="false">
        <from
            uri="file:{{abc.list}}?noop=true&amp;" />
        <to uri="direct:route1"
            id="route1" />
    </route>
    <route id="readRoute" autoStartup="false">
        <from
            uri="file:{{abc.read}}?noop=true&amp;" />
        <to uri="direct:route2"
            id="route2" />
    </route>
</camelContext>
Error creating bean with name 'samplePriceBean' defined in class path resource [app-camel.xml]: Cannot resolve reference to bean 'route1' while setting constructor argument; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'route1' available
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:787)
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:226)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1358)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1204)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:557)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:323)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
应用程序无法解析骆驼上下文中定义的路由


我使用的是JDK11、Spring5.x、ApacheCammel3.0.0

camel2.x不支持Java11。您应该使用Camel 3来支持Java 11。

好的,所以从一开始这也是错误的

用于定义路由,路由不作为springbean公开,spring依赖注入可以使用/lookup。只有
是用于此目的的,因为它的
包含上下文


在您的
SamplePriceBean
中,您可以将其构造函数更改为不将route1和route2作为参考,但您可以使用
CamelContext
中的API通过
CamelContext
API(而不是spring bean ID)查找这些路由。

升级之前,这个示例是否可行?你在哪里定义了id为“route1”或“route2”的Springbean?是的,它在哪里工作?我甚至尝试过版本3.0.0,但问题是一样的