我最近開始學習camel,並試用了一些示例應用程序。 org.apache.camel.FailedToCreateRouteException: 無法在創建路由路徑2:>>> 豆我也遇到了這個錯誤,而作爲測試用例運行的一部分裝載應用程序上下文,BeanCreationException:已聲明但不在註冊表中存在的組件
... 45多所致[ref:orderItemMessageTranslator method:transformOrderItemMessage] < < < in route:Route(route2)[[from [sql:select id from orders。「order」 where ... because of No bean could be found in the registry for: orderItemMessageTranslator在 org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:910) at 個org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:175) 在 org.apache.camel.impl.DefaultCamelContext.startRoute(DefaultCamelContext.java:780) 在 org.apache.camel.impl .DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:2068) 在 org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:1816) 在 org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java :1683) at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61) at org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:1651) 在 org.apache.camel.spring.SpringCamelContext.maybeStart(SpringCamelContext.java:254) 在 org.apache.camel.spring.SpringCamelContext.afterPropertiesSet(SpringCamelContext.java:106) 在 org.springframework.beans .factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1612) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1549) ... 60由多個所致:org.apache .camel.NoSuchBeanException:在註冊表中找不到豆 :orderItemMessageTranslator org.apache.camel.component.bean.RegistryBean.ge tBean(RegistryBean.java:87) 在 org.apache.camel.model.BeanDefinition.createProcessor(BeanDefinition.java:222) 在 org.apache.camel.model.ProcessorDefinition.makeProcessor(ProcessorDefinition.java:499) 在 org.apache.camel.model.ProcessorDefinition.addRoutes(ProcessorDefinition.java:212) 在 org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:907) ...... 71多個
通過Google搜索嘗試了我最好的,並在堆棧溢出來解決,但我的努力沒有成功。需要一些幫助。
下面是w.r.t用於我的示例應用程序供你參考一些相關文件,
Application.java:
---------------------
@Configuration
@ComponentScan(basePackages = "com.pluralsight.orderfulfillment")
@PropertySource("classpath:order-fulfillment.properties")
public class Application {
}
IntegrationConfig.java:
-------------------------
@Configuration
public class IntegrationConfig extends CamelConfiguration {
@Inject
private Environment environment;
@Inject
private DataSource datasource;
@Bean
public SqlComponent sql() {
SqlComponent sqlComponent = new SqlComponent();
sqlComponent.setDataSource(datasource);
return sqlComponent;
}
@Bean
public RouteBuilder newWebsiteOrderRoute() {
return new RouteBuilder() {
@Override
public void configure() throws Exception {
from("sql:"
+ "select id from orders.\"order\" where status = '"
+ OrderStatus.NEW.getCode()
+ "'"
+ "?"
+ "consumer.onConsume=update orders.\"order\" set status = '"
+ OrderStatus.PROCESSING.getCode()
+ "' where id=:#id")
.beanRef("orderItemMessageTranslator", "transformOrderItemMessage")
.to("log:com.pluralsight.orderfulfillment.order?level=INFO");
}
};
}
}
Pom.xml:
---------
..
..
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-spring</artifactId>
<version>2.13.2</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-spring-javaconfig</artifactId>
<version>2.13.2</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-sql</artifactId>
<version>2.13.2</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-test-spring</artifactId>
<version>2.13.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>4.0.4.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.0.4.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>4.0.4.RELEASE</version>
</dependency>
<!-- SPRING FRAMEWORK -->
<!-- Spring framework core dependency minus commons logging in favor of SLF4J -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.0.4.RELEASE</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- Spring aspects -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>4.0.4.RELEASE</version>
</dependency>
<!-- Spring MVC -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.0.4.RELEASE</version>
</dependency>
<!-- Spring MVC -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.0.4.RELEASE</version>
</dependency>
<!-- Spring JDBC -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>4.0.4.RELEASE</version>
</dependency>
<!-- Spring Data JPA -->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
<version>1.5.2.RELEASE</version>
<exclusions>
<exclusion>
<artifactId>spring-aop</artifactId>
<groupId>org.springframework</groupId>
</exclusion>
</exclusions>
</dependency>
..
..
預先感謝幫助。
是,@Component註釋是there..bean()建設者的工作,它解決了我的問題。只是想知道爲什麼beanRef()是不是在我的情況下工作.. – user3248235
嘗試@ ComponentScan'加上'到CamelConfiguration類(你可以在我的更新答案見)。 – mgyongyosi