当前位置: 首页 > 知识库问答 >
问题:

Spring Boot中不接受多个camel上下文,而是单个configl xml模型?

傅阿苏
2023-03-14

基本事实:Apache Camel 2.20.1(Spring引导)

尽管提供了显式的不同ID,但同一spring boot config xml中的多个上下文引用会引发以下突出显示的错误

当我自己的例子失败了-我尝试了简单的示例案例…但遇到了同样的错误

创建在类路径resource>[org/apache/camel/spring/boot/typeConversionConfiguration.class]中定义的名为'type converter'的bean时出错:通过方法'type converter'参数0表示的依赖项未满足;nested>异常是org.springframework.beans.factory.nouniqueBeanDefinitionException:>没有“org.apache.camel.camelContext”类型的合格bean可用:预期>单个匹配bean但找到2:camel1,camel2

<!-- here we have the 1st CamelContext -->
<camelContext id="camel1" xmlns="http://camel.apache.org/schema/spring">
    <route>
        <from uri="direct:one" />
        <to uri="mock:result" />
    </route>
</camelContext>

<!-- and there we have the 2nd CamelContext -->
<camelContext id="camel2" xmlns="http://camel.apache.org/schema/spring">
    <route>
        <from uri="direct:two" />
        <to uri="log:two" />
        <to uri="mock:result" />
    </route>
</camelContext>

我的上下文是从Spring boot starter类调用的,如下所示。

@SpringBootApplication
@ComponentScan(basePackages="com.wm")
@ImportResource("classpath:META-INF/spring/spring-context.xml")
public class ExtAuthServiceAppStarter {
    public static void main(String[] args) {
    SpringApplication.run(ExtAuthServiceAppStarter.class, args);
   }
}

有什么建议吗?

共有1个答案

沈俊明
2023-03-14

是的,Spring Boot不是一个在同一个JVM中托管N+个应用程序的应用服务器。

对Spring Boot上的Camel进行了优化,并坚持只运行一个CamelContext。

 类似资料:
  • 我想了解同一驼峰环境中的多条路由将如何运行? 例如,假设我有一个应用程序,其中有一个camel上下文,其中包含三个不同的路由生成器,每个生成器定义一条路由。每一条路由都在监听不同的队列。 有人能告诉我这三条线路是并行工作还是只有一条线路在其他线路等待时处理信息吗?

  • 问题内容: 由于Go中的错误处理,我经常会遇到多个值函数。到目前为止,我的管理方式非常混乱,我正在寻找编写更简洁代码的最佳实践。 假设我具有以下功能: 我如何优雅地分配一个新变量。在引入错误处理之前,我的函数刚刚返回,我可以简单地做到这一点: 现在,我这样做: 有没有办法直接访问第一个返回的变量? 问题答案: 如果是多值返回函数,则在调用函数时不能引用具有特定结果值的字段或方法。 如果他们中的一个

  • 我有一个带有主窗口的应用程序。它有自己的线程和opengl上下文。这个应用程序每个处理器还有一个工作线程来创建和上传软件渲染的纹理。这工作得非常好。 我担心的是工作线程opengl上下文是使用主窗口的device_context创建的。因此,在双处理器系统的情况下,这意味着3个opengl上下文被绑定到同一个window device_context。它们都是在主窗口线程中创建的,然后调用shar

  • 问题内容: 是否可以在node.js中创建单个http服务器,该服务器将接受多个主机名上的连接?例如:我有多个绑定到IP地址的子域(x1.domain.com,x2.domain.com,… xn.domain.com),并且我希望node.js程序仅接受x1上的连接。 domain.com和x2.domain.com。 问题答案: 使用ConnectJS的“ vhost”中间件应该可以实现: h

  • 我有一个使用log4j2的java应用程序,它连接到两个不同的mysql实例(一个存储加密数据,一个存储解密数据),每个实例使用多个模式。我正在尝试实现log4j2jdbc Appender,以便使用特定的标记将错误记录到相关的数据库模式中。 但是,我遇到了一个障碍,试图将模式名称动态分配给记录器。这是我的日志4J2。xml配置: 我已经将值添加到ThreadContext中,这种方式适用于此模板

  • 我正在为一个向最终用户隐藏骆驼业务的库编写测试用例。该库公开了sendMessages()等方法,并在内部使用ProducerTemplate将消息发送到一个骆驼路由,在该路由中将消息聚合并最终发送到目的地。 我希望能够编写调用library方法的测试,并模拟骆驼路由endpoint,以便稍后对其进行断言。 如果我使用CamelSpringTestSupport,它基本上会创建一个新的类PathX