次の lib バージョンを使用して、最初の Akka/Camel アプリケーションを「スクラッチ」(読み取り、「noob」) からまとめようとしています。
- akka-camel: 2.2.0-RC1
私が見つけることができるすべてのドキュメント (Akka ドキュメント、ユーザー グループなど) によると、ファイルベースのキューから消費するために必要なことは、システムを次のようにセットアップすることだけです。
メインクラス:
actorSystem = ActorSystem.create("my-system");
Props props = new Props(Supervisor.class);
ActorRef supervisor = actorSystem.actorOf(props, "supervisor");
Camel camel = CamelExtension.get(actorSystem);
CamelContext camelContext = camel.context();
camelContext.start();
スーパーバイザー クラス:
import akka.actor.ActorRef;
import akka.actor.Props;
import akka.camel.javaapi.UntypedConsumerActor;
import org.apache.camel.Message;
/**
* Manages creation and supervision of UploadBatchWorkers.
*/
public class Supervisor extends UntypedConsumerActor {
@Override
public String getEndpointUri() {
return "file:///Users/myhome/queue";
}
@Override
public void preStart() {
String test = "test";
}
@Override
public void onReceive(Object message) {
if (message instanceof CamelMessage) {
// do something
}
}
私の問題は、スーパバイザ オブジェクトが作成され、 preStart() メソッドの「テスト」行でのデバッグ中に壊れていることを知っていても (言うまでもなく、正常に処理されるものを明示的に「伝える」場合)、消費しないことです。同じエンドポイントにメッセージを生成する別のアプリケーションがある場合でも、定義されたエンドポイントから。
私が間違っていることは何か分かりますか?