私は Apache Camel を初めて使用し、単純な SNMP トラップを受信しようとしています。
camel-core と org.apache.servicemix.bundles.snmp4j を使用して Maven プロジェクトをセットアップしました。
SNMP の例を見つけることができませんでしたが、他の例に基づいて、次の Main クラスを作成しました。
public class Main {
public static Processor myProcessor = new Processor() {
public void process(Exchange arg0) throws Exception {
// save to database
}
};
public static void main(String[] args) {
CamelContext context = new DefaultCamelContext();
context.addComponent("snmp", new SnmpComponent());
RouteBuilder builder = new RouteBuilder() {
public void configure() {
from("snmp:127.0.0.1:162?protocol=udp&type=TRAP").process(myProcessor);
}
};
try {
context.addRoutes(builder);
context.start();
} catch (Exception e) {
e.printStackTrace();
}
}
}
ただし、Eclipse で Java アプリケーションとして実行すると、0.5 秒実行した後に終了します。私はそれが実行され続け、127.0.0.1:162 をリッスンし続けることを期待していました...
どんな助けでも大歓迎です