179.5.4. JMX NotificationListener를 사용하여 camel 이벤트를 청취하는 방법은 무엇입니까?
Camel 알림 이벤트를 통해 진행 중인 상황을 간략히 설명합니다. 컨텍스트 및 끝점에서 수명 주기 이벤트를 볼 수 있으며 엔드 포인트에 의해 수신되고 끝점으로 전송되는 교환을 볼 수 있습니다.
Camel 2.4 에서 사용자 지정 JMX NotificationListener를 사용하여 camel 이벤트를 수신할 수 있습니다.
먼저 CamelContext를 시작하기 전에 JmxNotificationEventNotifier 를 설정해야 합니다.
// Set up the JmxNotificationEventNotifier
notifier = new JmxNotificationEventNotifier();
notifier.setSource("MyCamel");
notifier.setIgnoreCamelContextEvents(true);
notifier.setIgnoreRouteEvents(true);
notifier.setIgnoreServiceEvents(true);
CamelContext context = new DefaultCamelContext(createRegistry());
context.getManagementStrategy().addEventNotifier(notifier);둘째, 이벤트 수신을 위해 청취자를 등록할 수 있습니다.
// register the NotificationListener
ObjectName on = ObjectName.getInstance("org.apache.camel:context=camel-1,type=eventnotifiers,name=JmxEventNotifier");
MyNotificationListener listener = new MyNotificationListener();
context.getManagementStrategy().getManagementAgent().getMBeanServer().addNotificationListener(on,
listener,
new NotificationFilter() {
private static final long serialVersionUID = 1L;
public boolean isNotificationEnabled(Notification notification) {
return notification.getSource().equals("MyCamel");
}
}, null);