将Java控制台程序转换为Webapp

时间:2012-04-11 14:58:47

标签: java web-applications

我有一个带有main()方法的Java类。它包含进行一些数字运算和分析的逻辑。它计划每天运行一次,如果需要可以再次手动运行。例程使用Log4j记录其活动。运行它并检查日志需要远程登录主机框。

我想将其转换为Web应用程序,我可以通过网页触发它并查看日志的输出,理想情况是滚动时。

最好的方法是什么? Java webapp?一个简单的基于Web的脚本运行器?或者我可能不知道的任何其他选择。

更新 关于要求的更多细节:

  1. 能够从网页启动该程序
  2. 能够看到Log4j的滚动输出
  3. 如果我离开页面并再次返回,它应该让我知道上次运行仍在运行并显示日志。 我不需要能够并行运行多个实例。

3 个答案:

答案 0 :(得分:5)

您是否考虑过设置Hudson / Jenkins服务器来运行任务?因为它具有您描述的功能,所以它是一个java Web应用程序,无需修改现有项目即可使用。

答案 1 :(得分:1)

您可以通过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 Controller(返回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。

答案 2 :(得分:0)

您可以尝试从jsp / jsf

调用Web服务
相关问题