【问题标题】:Waiting for dependencies [(&(component=Simple)(objectClass=org.apache.camel.spi.ComponentResolver))]等待依赖 [(&(component=Simple)(objectClass=org.apache.camel.spi.ComponentResolver))]
【发布时间】:2018-08-06 10:31:45
【问题描述】:

我正在使用 Apache Camel,并且我正在定义一个我需要访问某些标头的路由。为此,我使用 simple 动态访问标题。

from("direct:buildInformation")     
    .setProperty("id", constant(simple("${header.headers[id]}")))
    .to(simple("http://localhost/search?id=${header.headers[id]}"))
    .process("MyProcessor");

但是我得到错误:正在等待依赖项[(&(component=Simple)(objectClass=org.apache.camel.spi.ComponentResolver))]。如您所见,在我的 pom.xml 项目中,我导入了所有需要的依赖项,包括骆驼核,这是简单语言正常工作所必需的。

<dependencies>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-blueprint</artifactId>
        <version>${camel-version}</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>net.sourceforge.jexcelapi</groupId>
        <artifactId>jxl</artifactId>
        <version>2.6.12</version>
    </dependency>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-core</artifactId>
        <version>${camel-version}</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-http</artifactId>
        <version>${camel-version}</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-http4</artifactId>
        <version>${camel-version}</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-jackson</artifactId>
        <version>${camel-version}</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-jsonpath</artifactId>
        <version>${camel-version}</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${slf4j-version}</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>3.4</version>
        <scope>provided</scope>
    </dependency>
</dependencies>

除此之外,从我的 Karaf 控制台我看到骆驼核心处于活动状态,但我的包处于 GracePeriod 状态:[(&(component=Simple)(objectClass=org.apache.camel.spi.ComponentResolver) )]。在我的 Karaf 控制台打印屏幕下方。

来自 karaf 控制台的图片显示骆驼核心依赖项处于活动状态

在 Karaf 上诊断 mybundle 后显示错误

【问题讨论】:

  • 不确定,但可能是因为你有这部分:.setProperty("id", constant(simple("${header.headers[id]}")))?我看不出你为什么要在常量中放置一个简单表达式,我什至不确定这是否可行。
  • 您一定是编码错误,因为没有名为 Simple 的组件。此外,组件名称仅使用小写字母。所以试着在你的代码中搜索Simple

标签: java routes apache-camel karaf


【解决方案1】:

根据this link,Blueprint 需要找到引用。在这种情况下,您可以尝试在 blueprint.xml 中添加如下所示的超时:

<reference id="Simple" 
    interface="org.apache.camel.spi.ComponentResolver" 
    timeout="30000"/>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-18
    相关资源
    最近更新 更多