[英]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可視化工具中創建網頁本身。
最后,我提出以下解決方案:在計算中使用可選的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.