我需要考慮克勞斯'的答案,但對於一個快速和骯髒的用戶界面,我採用了不同的方法。
我使用Spring MVC的3.1.X,並有我的應用程序的各種項目的管理控制檯。我編寫了一個Controller來顯示路由及其狀態,並提供了根據需要啓動和停止路由的鏈接。下面是一些代碼:
@Controller
public class CamelController {
private static final Log LOG = LogFactory.getLog(CamelController.class);
@Autowired
@Qualifier("myCamelContextID")
private CamelContext camelContext;
@RequestMapping(value = "/dashboard", method = RequestMethod.GET)
public String dashboard(Model model) {
if (LOG.isDebugEnabled()) {
LOG.debug("camel context is suspended : " + camelContext.isSuspended());
}
List<Route> routes = camelContext.getRoutes();
List<RouteStatus> routeStatuses = new ArrayList<RouteStatus>();
for (Route r : routes) {
RouteStatus rs = new RouteStatus();
rs.setId(r.getId());
rs.setServiceStatus(camelContext.getRouteStatus(r.getId()));
routeStatuses.add(rs);
}
model.addAttribute("routeStatuses", routeStatuses);
return "dashboard";
}
@RequestMapping(value = "/dashboard/{routeId}/start", method = RequestMethod.GET)
public String startRoute(@PathVariable String routeId) {
try {
camelContext.startRoute(routeId);
if (LOG.isDebugEnabled()) {
LOG.debug("camel context is starting route [" + routeId + "]");
}
} catch (Exception e) {
LOG.error("failed to start camel context [" + camelContext + "]");
}
return "redirect:/dashboard";
}
@RequestMapping(value = "/dashboard/{routeId}/stop", method = RequestMethod.GET)
public String stopRoute(@PathVariable String routeId) {
try {
camelContext.stopRoute(routeId);
if (LOG.isDebugEnabled()) {
LOG.debug("camel context is stopping route [" + routeId + "]");
}
} catch (Exception e) {
LOG.error("failed to stop camel context [" + camelContext + "]");
}
return "redirect:/dashboard";
}
}
}
有一個小POJO我提出去用它:
public class RouteStatus {
private String id;
private ServiceStatus serviceStatus;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public ServiceStatus getServiceStatus() {
return serviceStatus;
}
public void setServiceStatus(ServiceStatus serviceStatus) {
this.serviceStatus = serviceStatus;
}
}
謝謝回答我的問題連接生產者。我想我需要更新我的MEAP書籍。 TBD說第14章。這本書雖然非常有幫助! – ScArcher2 2010-07-30 13:51:39