Spring Boot + Apache camel+ MongoDB集成问题

我是刚接触Apache camel的人。我有一个Spring Boot(MVC)+ mongodb项目已经运行良好,当我尝试将其与apache

camel集成时,控制台上出现异常。根据我对异常启动的理解,Spring

Boot试图说,@Component当我@ComponentScan(basePackages="packagePath")在项目中的其他任何地方使用时,我无法在骆驼Route文件上使用默认注释,因为它是MVC架构,所以我拥有不可忽略的Controller,Service和Repository

,请帮助我解决此问题。

启动ApplicationContext时出错。要显示条件报告,请在启用“调试”的情况下重新运行您的应用程序。2018-03-15

17:17:55.426错误744 — [main] osboot.SpringApplication

:应用程序运行失败

org.springframework.beans.factory.BeanDefinitionStoreException:无法处理配置类[com.era.conf.ApplicationConfiguration]的导入候选对象;嵌套异常为java.lang.IllegalStateException:由于找不到org

/ springframework / boot / bind /

RelaxedPropertyResolver,因此无法评估org.apache.camel.spring.boot.health.HealthCheckRoutesAutoConfiguration上的条件。确保您自己的配置不依赖该类。如果您正在org.springframework.context.annotation.ConfigurationClassParser.processImports(ConfigurationClassParser.java:616)上使用@ComponentScanning

springframework软件包(例如,如果错误地将@ComponentScan放入默认软件包),也会发生这种情况。

context-5.0.4.RELEASE.jar:5.0.4.RELEASE],位于org.springframework.context.annotation。IllegalStateException:由于找不到org

/ springframework / boot / bind /

RelaxedPropertyResolver,因此无法评估org.apache.camel.spring.boot.health.HealthCheckRoutesAutoConfiguration上的条件。确保您自己的配置不依赖该类。如果您正在org.springframework.boot.autoconfigure.condition.SpringBootCondition.matches(SpringBootCondition.java:55)上使用@ComponentScanning

springframework软件包(例如,如果错误地将@ComponentScan放入默认软件包),也会发生这种情况。 spring-boot-

autoconfigure-2.0.0.RELEASE.jar:2.0.0.RELEASE]在org.springframework.context.annotation.ConditionEvaluator.shouldSkip(ConditionEvaluator.java:109)〜[spring-

context-5.0.4.RELEASE

.jar:5.0.4.RELEASE],位于org.springframework.context.annotation.ConfigurationClassParser。

<dependencies>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-data-mongodb</artifactId>

</dependency>

<dependency>

<groupId>org.apache.camel</groupId>

<artifactId>camel-spring-boot-starter</artifactId>

<version>2.20.2</version>

</dependency>

</dependencies>

package com.era.conf;

@SpringBootApplication

@ComponentScan(basePackages = "com.era.controller")

public class ApplicationConfiguration {

public static void main(String[] args) throws Exception {

SpringApplication.run(ApplicationConfiguration.class, args);

}

}

package com.era.controller;

@RestController

@RequestMapping("/emailResponse")

@ComponentScan(basePackages = "com.era.service")

public class EmailResponseController {

@Autowired private EmailResponseService serv;

@RequestMapping("/read")

public EmailResponseModel ExchangeServerEmailsReader() {

return serv.ExchangeServerEmailsReader();

}

}

package com.era.service;

@Service

@EnableMongoRepositories("com.era.repository")

public class EmailResponseServiceImpl implements EmailResponseService {

@Autowired private EmailResponseRepository repo;

@Override

public EmailResponseModel ExchangeServerEmailsReader() {

final EmailResponseModel emailModel = new EmailResponseModel();

emailModel.setEmail(readEmailsFromExchangeServer());

return repo.save(emailModel);

}

}

package com.era.route;

@Component

public class CamelRouteClass extends RouteBuilder {

@Override

public void configure() throws Exception {

from("file:C://response?noop=true").to("file:C://response2");

}

}

回答:

问题是, 已在spring启动(2.0.0.RELEASE)的最新版本中删除。但是,最新的camel-

spring-boot-starter模块(撰写本文时为2.20.2)仍取决于缺少的RelaxedPropertyResolver。

要解决此问题,直到有新版本的Camel,您需要将spring-boot降级到1.5.10.RELEASE。

以上是 Spring Boot + Apache camel+ MongoDB集成问题 的全部内容, 来源链接: utcz.com/qa/418204.html

回到顶部