【发布时间】: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 控制台打印屏幕下方。
【问题讨论】:
-
不确定,但可能是因为你有这部分:
.setProperty("id", constant(simple("${header.headers[id]}")))?我看不出你为什么要在常量中放置一个简单表达式,我什至不确定这是否可行。 -
您一定是编码错误,因为没有名为
Simple的组件。此外,组件名称仅使用小写字母。所以试着在你的代码中搜索Simple。
标签: java routes apache-camel karaf