如果我想对 SparkJava 的嵌入式 Jetty 服务器使用简单配置,将JavaMelody与SparkJava集成的最佳方法是什么?
这就是我启动 SparkJava 的方式:
Spark.get("/abc",(req,resp)->System.out.println("abc"));
Spark.init();
这就是我开始 javamelody 的方式:
public static void start(int port, Map<Parameter, String> parameters) {
final Server server = new Server(port);
final ContextHandlerCollection contexts = new ContextHandlerCollection();
final ServletContextHandler context = new ServletContextHandler(contexts, "/",
ServletContextHandler.SESSIONS);
final Filter monitoringFilter = new net.bull.javamelody.MonitoringFilter();
final FilterHolder filterHolder = new FilterHolder(monitoringFilter);
if (parameters != null) {
for (final Map.Entry<Parameter, String> entry : parameters.entrySet()) {
final net.bull.javamelody.Parameter parameter = entry.getKey();
final String value = entry.getValue();
filterHolder.setInitParameter(parameter.getCode(), value);
}
}
context.addFilter(filterHolder, "/*",
EnumSet.of(DispatcherType.INCLUDE, DispatcherType.REQUEST));
final RequestLogHandler requestLogHandler = new RequestLogHandler();
contexts.addHandler(requestLogHandler);
final HandlerCollection handlers = new HandlerCollection();
handlers.setHandlers(new Handler[]{contexts});
server.setHandler(handlers);
server.start();
}
这种 JavaMelody 启动的问题在于它创建了另一个码头服务器。它适用于 Spring 和 Hibernate,因此您可以看到所有统计信息,但您看不到 HTTP 请求统计信息,因为它是另一个码头服务器。
所以确切的问题是:如何使用 SparkJava 启动 JavaMelody,以便您可以看到 JavaMelody 中的所有统计信息,包括 Http 统计信息。
ps:反射黑客作为解决方案对我来说是可以的