7

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

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

最好的方法是什么?Java 网络应用程序?一个简单的基于 Web 的通用脚本运行器?或我可能不知道的任何其他选项。

更新: 有关要求的更多详细信息:

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

3 回答 3

5

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

于 2012-04-11T15:05:03.233 回答
1

您可以通过 AJAX 提交表单并使用带有 Spring MVC 的 Ajax 来轮询新的日志条目并将它们添加到页面上的表格中。这是 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 执行此操作的方法至少会有所帮助。

于 2012-04-11T15:50:26.177 回答
0

你可以尝试从 jsp / jsf 调用 web-service

于 2012-04-11T15:07:14.160 回答