1

SparkJava の組み込み Jetty サーバーで単純な構成を使用したい場合、 JavaMelodySparkJavaと統合する最良の方法は何ですか?

これは、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 の起動の問題は、別の jetty サーバーが作成されることです。Spring と Hibernate で問題なく動作するため、すべての統計を表示できますが、別の Jetty サーバーであるため、HTTP 要求の統計は表示できません。

正確な問題は、SparkJava で JavaMelody を起動して、HTTP 統計を含む JavaMelody のすべての統計を表示する方法です。

PS:解決策として、リフレクションハックは私にとっては問題ありません

4

0 に答える 0