私はキャメル(とMavenを)知ってもらうことだし、私はこの非常に単純なJavaの例があります。Apacheのキャメル「の方式では見つかりませんでしたコンポーネント:ストリーム」
は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を受け取る:ストリーム
スレッドの例外「メイン」 org.apache.camel.FailedToCreateRouteException:ルートルートroute1の作成に失敗しました:>>> To [stream:out] < < <ルート:ルート(ro :なしコンポーネントが見つかりません:ストリーム at org.apache.camel org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:204)のの場合、 :1087) org.apache.camelでorg.apache.camel.impl.DefaultCamelContext.startRouteDefinitions org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:3275で(DefaultCamelContext.java:3544) ) で.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。 org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:3089) (org.apache.camel.support.ServiceSupport.start(ServiceSupport.java: org.apache.camel.ResolveEndpointFailedException:61)mavenCamelRiding.binFileStreamToCamel.MainStreamRouter.main(MainStreamRouter.java:37) でorg.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:3026) に起因します。エンドポイントの解決に失敗しました:stream:// out outのために:scheme:sでコンポーネントが見つかりません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) ) (org.apache.camel.model.SendDefinition.java:62) .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で建物をテストして実行しました。そこで私はプロジェクトフォルダを右クリックして "Build Project"を選択しました。次に、「Run As」と「Java Application」を選択しました。 Eclipseコンソールは私に、期待される世界的な出力を与えます。
なぜコンソールで動作しないのですか?
編集3:今
代わりに最初の使用の "ターゲット\クラス" フォルダに移動し、 "Javaのpackage.classname" を実行し、 "MVNをコンパイルする"、私はこれを実行:
MVNコンパイルexec:java -Dexec.mainClass = package.classname
そして、私が望んでいたこんにちは世界の出力を与えます。
音がクラスパスの問題のようですか?どうすればmavenなしでサンプルプログラムを起動できますか?
あなたはコードがOKですので、POMの内容を投稿すると問題を見つけるのに役立ちます。 – Tome
プロジェクトにclean:installを実行して、正しくビルドされていることを確認しましたか? –
Eclipseで何回かProject Cleanを実行しました。それで十分ですか? – numberfourteen