0
親愛なるCamel/Akka/Nettyマスター!Akka + Camel + Context-Provider
私は、TCP接続を消費するUntypedConsumerActorを作成しました:場合
public class TcpEndpoint extends UntypedConsumerActor {
private static final Logger log = LoggerFactory.getLogger(TcpEndpoint.class);
public static Props props = Props.create(TcpEndpoint.class);
@Override
public String getEndpointUri() {
return "netty4:tcp://localhost:8000?decoders=#fdDecoder,#fdHandler";
}
@Override
public void onReceive(Object message) throws Throwable {
log.error("onReceived");
}
}
をネッティーコンポーネントのデコーダーを設定するには、私はContextProviderを作成しました:
今public class FDCamelContext implements ContextProvider {
public DefaultCamelContext getContext(ExtendedActorSystem system) {
JndiRegistry registry = new JndiRegistry();
registry.bind("fdDecoder", new FDDecoder());
registry.bind("fdHandler", new FDHandler());
DefaultCamelContext context = new DefaultCamelContext(registry);
return context;
}
}
、私はそこにメッセージを送信するときonReceiveメソッドは呼び出されません。どうして? DefaultContextProviderを設定し、texttyを使うようにnettyを設定すると、すべてが期待通りに機能します。