gpt4 book ai didi

java - Apache Camel "No component found with scheme: stream"

转载 作者:行者123 更新时间:2023-11-30 10:25:27 26 4
gpt4 key购买 nike

我刚刚开始了解 Camel(和 Maven),我有这个非常简单的 Java 示例:

 public static void main( String[] args ) throws Exception {    
CamelContext context = new DefaultCamelContext();

context.addRoutes(new RouteBuilder() {

public void configure() {
from("direct:in").to("stream:out");
}

});

context.start();

ProducerTemplate template = context.createProducerTemplate();
template.sendBody("direct:in", "Hello Text World");
template.sendBody("direct:in", "Hello Bytes World".getBytes());
}

我的 maven POM 文件包括:

<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-stream</artifactId>
<version>2.19.2</version>
</dependency>

我仍然收到 org.apache.camel.FailedToCreateRouteException,因为没有找到具有方案的组件:流

Exception in thread "main" org.apache.camel.FailedToCreateRouteException: Failed to create route route1 at: >>> To[stream:out] <<< in route: Route(ro to: No component found with scheme: stream at org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:1298) at org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:204) at org.apache.camel.impl.DefaultCamelContext.startRoute(DefaultCamelContext.java:1087) at org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:3544) at org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:3275) at org.apache.camel.impl.DefaultCamelContext.access$000(DefaultCamelContext.java:202) at org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:3093) at org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:3089) at org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:3112) at org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:3089) at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61) at org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:3026) at mavenCamelRiding.binFileStreamToCamel.MainStreamRouter.main(MainStreamRouter.java:37) Caused by: org.apache.camel.ResolveEndpointFailedException: Failed to resolve endpoint: stream://out due to: No component found with scheme: stream at org.apache.camel.impl.DefaultCamelContext.getEndpoint(DefaultCamelContext.java:729) at org.apache.camel.util.CamelContextHelper.getMandatoryEndpoint(CamelContextHelper.java:80) at org.apache.camel.model.RouteDefinition.resolveEndpoint(RouteDefinition.java:219) at org.apache.camel.impl.DefaultRouteContext.resolveEndpoint(DefaultRouteContext.java:112) at org.apache.camel.impl.DefaultRouteContext.resolveEndpoint(DefaultRouteContext.java:118) at org.apache.camel.model.SendDefinition.resolveEndpoint(SendDefinition.java:62) at org.apache.camel.model.SendDefinition.createProcessor(SendDefinition.java:56) at org.apache.camel.model.ProcessorDefinition.makeProcessorImpl(ProcessorDefinition.java:549) at org.apache.camel.model.ProcessorDefinition.makeProcessor(ProcessorDefinition.java:510) at org.apache.camel.model.ProcessorDefinition.addRoutes(ProcessorDefinition.java:226) at org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:1295)

知道问题出在哪里吗?到目前为止,Google 无法帮助我。

编辑 1:这是我的 POM 文件的其余部分

  <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>mavenCamelRiding</groupId>
<artifactId>binFileStreamToCamel</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<name>binFileStreamToCamel</name>
<url>http://maven.apache.org</url>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<dependencies>

<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-core</artifactId>
<version>2.19.2</version>
</dependency>

<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-stream</artifactId>
<version>2.19.2</version>
</dependency>

</dependencies>
</project>

编辑 2:

这显然与我构建和启动程序的方式有关。这让我感到困惑,因为到目前为止我使用的任何其他路由选项(jms、activemq、file、bean)都没有任何问题。

我现在测试了 Eclipse 中的构建和运行,而不是使用控制台。所以我右键单击项目文件夹并选择“构建项目”。然后我选择了“Run As”和“Java Application”。 Eclipse 控制台为我提供了预期的 hello-world-output。

为什么它不适用于控制台?

编辑 3:

现在我没有先使用“mvn compile”,移动到“target\classes”文件夹然后运行“java package.classname”,而是执行了这个:

mvn compile exec:java -Dexec.mainClass=package.classname

它给了我想要的 hello-world-output。

听起来像是类路径问题?如何在没有maven的情况下启动示例程序?

最佳答案

现在我有 2 个选项可以在控制台上运行我的示例程序:

第一个选项:

mvn compile exec:java -Dexec.mainClass=package.classname(在 pom.xml 文件夹中)

第二个选项:

  1. mvn dependency:copy-dependencies compile(在 pom.xml 文件夹中)
  2. java -classpath ..\dependency*;. package.classname(在文件夹 target\classes 中)

所以这是一个类路径问题。它只是没有解释,为什么在前面的示例中,java 能够在没有附加类路径信息的情况下找到 camel-core 和 camel-jms,但不能找到 camel-stream。

关于java - Apache Camel "No component found with scheme: stream",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46196384/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com