私はキャメルとカラフに夢中です。私は2つのバンドルでプロジェクトを構築した:Karafのラクダ:ルートリストにはブルールートだけが表示され、Javaのルートは表示されません。
- バンドルAは青写真キャメルルートが含まれてい
- バンドルBは、純粋なJavaのルート
が含まれています、私はジェイミー・グッドイヤーのKarafクックブック
からの指示に従っ両方のルートは非常にシンプルで、フィーチャーファイルを使用して展開します。彼らは完全に展開し、予定通りにも正確に実行します。
バンドルAは/tmp/out
バンドルBに/tmp/in
からファイルを移動tmp/out2
すべて良いに/tmp/in2
からファイルを移動します。私は、Karafコマンドcamel:route-list
を実行する場合、私はバンドルAに定義されたコンテキストが示され、その後camel:context-list
を実行する場合
しかし、唯一青写真ルートは、また
が示されています。
これを繰り返しても、両方のルートは正常に動作しますが、Javaのものはリストに表示されません。
ここに何か不足していますか?
public class FileRouter extends RouteBuilder {
public void configure()
{
from ("file:/tmp/in2?noop=true")
.log("Java DSL doing the heavy lifting")
.to("file:/tmp/out2");
}
}
、バンドルアクティベータ:
public class Activator implements BundleActivator {
DefaultCamelContext camelContext;
public void start(BundleContext context) {
System.out.println("Starting the bundle");
camelContext = new DefaultCamelContext();
try {
camelContext.setName("JavaDSLContext");
camelContext.addRoutes(new FileRouter());
camelContext.start();
} catch (Exception ex) {
System.out.println("Exception occured! " + ex.getMessage());
}
}
public void stop(BundleContext context) {
System.out.println("Stopping the bundle");
if (camelContext != null) {
try {
camelContext.stop();
} catch (Exception ex) {
System.out.println("Exception occured during stop context.");
}
}
}
}
Javaルートはバンドルとして展開されていますか?または何らかの形で包まれていますか? –
ちなみに、私はKarafとCamelを使って作業する最も簡単な方法は、青写真を使用することですが、routeBuilderを接続するだけで、すべての実装が実際のJavaルートdslにあることがわかります。 CamelとKarafを簡単に接続できます。 –
Javaバンドルの実装方法によって異なります。これをOSGiで手作業で行うときは、あなた自身がたくさんのものをセットアップする必要があります。それ以外の場合は、すべてがOSGiで実行できるラクダの青写真、camel-cdiまたはcamel-scrで無料で入手できます。 –