将Java控制台程序转换为Web应用程序
问题描述:
我有一个带有main()
方法的Java类。它包含进行一些数字处理和分析的逻辑。它计划每天运行一次,如果需要,可能会再次手动运行。例程使用Log4j来记录其活动。运行它并检查日志需要远程登录到主机框。将Java控制台程序转换为Web应用程序
我想将其转换为一个Web应用程序,在那里我可以通过网页触发它并查看日志的输出,理想情况下它是滚动的。
什么是最好的方法来做到这一点? Java webapp?一个简单的基于Web的脚本运行器?或者我可能不知道的任何其他选项。
更新: 一点上要求的更多细节:
- 能够从网页启动程序
- 能够看到的Log4j
- 滚动输出。如果我离开这个页面并再次回来,它应该让我知道最后一次运行仍在运行并显示日志。 我不需要有能力并行运行多个实例。
答
您是否考虑设置Hudson/Jenkins服务器来运行该任务?因为它具有您描述的功能,它是一个Java Web应用程序,它可以在不修改您的现有项目的情况下运行。
答
调用Web服务你可以通过AJAX提交表单并使用Ajax与Spring MVC轮询新的日志条目,并将其添加到表在页面上。下面是一些AJAX调用的快速示例代码,用于使用JQuery和Spring MVC控制器方法来处理新日志条目。
JSP:
$.getJSON("logs.htm", { lastLogId: logId }, function(response) {
$('#myTable tr:last').after('<tr><td>' + response + '</td></tr>');
});
Spring MVC的控制器(返回JSON):
@Controller
public class LogController {
@RequestMapping("logs.htm")
public @ResponseBody String getLogs(@RequestAttribute("lastLogId") Integer lastLogId, HttpSession sess) {
LogList logs = sess.getAttribute("logs"); // just an example using user-defined class "LogList"
return logs.getNextLog(lastLogId);
}
}
有几件我没有在这里提到(需要存储日志条目会话时的log4j日志等),但我希望至少有助于看到使用Spring MVC和AJAX实现这一点的方法。
你有任何java web框架的经验吗? – 2012-04-11 15:01:17
嗯,一个简单的Swing应用程序不会这样做? – 2012-04-11 15:01:51
@Shagaan - 是的,我选择的java web框架是Spring MVC – Danish 2012-04-11 15:03:26