繁体   English   中英

为Java中的计算创建调试网页的最佳方法是什么?

[英]What is the best way to create a debugging web page for a computation in Java?

我正在开发一个使用一些复杂计算(与NLP相关)的网站。 我的客户希望为其中的某些计算提供“调试”网页,在这里他可以使用任意输入运行它们,并查看计算过程中发生的所有中间结果。

在此请求之前,所有计算都封装在bean中,中间结果记录到常规日志中。

在Java级别捕获所有这些结果以将其呈现为网页的最佳方法是什么?

我建议在您的应用程序中嵌入一个servlet容器(Apache Tomcat或Jetty,我更喜欢Tomcat),并为Web界面创建一组JSP / JSF servlet。 该解决方案将使您可以在Web界面中使用所有Java企业技术(例如JAAS),并避免重新发明轮子。

我估计要用tomcat创建这样的解决方案到1天密集复制/粘贴的工作量。 在骨骼开始呼吸之后,可以使用几次鼠标拖动/单击操作,在Eclipse可视化工具中创建网页本身。

相关链接是如何嵌入tomcat 6 嵌入Jetty Eclipse JSF Tools

最后,我提出以下解决方案:在计算中使用可选的ThreadLocal<Map>来存储中间值。 最后,它看起来像这样:

public class ComplexComputation {
    public static final ThreadLocal<Map<String, Object>> DATA 
        = new ThreadLocal<Map<String, Object>>();

    public Result compute(Inputs inputs) {
        // ... do something ...
        if (DATA.get() != null) { DATA.get().put("intermediate", intermediate); }
        // ... do something ...
        return result;
    }
}

public void computationDebuggingCaller() {
    ComplexComputation.DATA.set(new HashMap<String, Object>());
    new ComplexComputation().compute(...);
    Object intermediate = ComplexComputation.DATA.get().get("intermediate");
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM