将Java控制台程序转换为Webapp
我有一个带有将Java控制台程序转换为Webapp,java,web-applications,Java,Web Applications,我有一个带有main()方法的Java类。它包含一些进行数字运算和分析的逻辑。它计划每天运行一次,如果需要,可以手动再次运行。该例程使用Log4j来记录其活动。运行它并检查日志需要远程登录到主机框 我想把它转换成一个web应用程序,在那里我可以通过一个web页面触发它并查看日志的输出,理想情况下是在它滚动时 最好的方法是什么?Java网络应用程序?一个简单的基于web的通用脚本运行程序?或者我可能不知道的任何其他选择 更新: 关于需求的更多细节: 从网页启动程序的能力 能够查看Log4j的滚动输
main()
方法的Java类。它包含一些进行数字运算和分析的逻辑。它计划每天运行一次,如果需要,可以手动再次运行。该例程使用Log4j来记录其活动。运行它并检查日志需要远程登录到主机框
我想把它转换成一个web应用程序,在那里我可以通过一个web页面触发它并查看日志的输出,理想情况下是在它滚动时
最好的方法是什么?Java网络应用程序?一个简单的基于web的通用脚本运行程序?或者我可能不知道的任何其他选择
更新:
关于需求的更多细节:
您是否考虑过设置Hudson/Jenkins服务器来运行该任务?因为它具有您描述的功能,所以它是一个java web应用程序,可以在不修改现有项目的情况下工作。您可以尝试从jsp/jsf调用web服务。您可以通过AJAX提交表单,并使用AJAX和Spring MVC轮询新的日志条目,并将它们添加到页面上的表中。下面是一些AJAX调用的快速示例代码,用于使用JQuery和SpringMVC控制器方法检查新的日志条目 JSP:
有几点我在这里没有提到(当log4j记录日志时,需要将日志条目存储到会话中,等等),但我希望至少能找到一种使用Spring MVC和AJAX来实现这一点的方法。你有使用java web框架的经验吗?嗯,简单的Swing应用程序不行?@Shagaan-是的,我选择的JavaWeb框架是SpringMVC@alpha123-我希望它是web的,这样我就可以从任何设备、PC/手机启动和查看它/Tablet@Danish我懂了。Java web应用程序是出了名的重量级,尤其是Spring之类的应用程序。此外,如果您想让它实时显示日志输出,可能需要使用Comet之类的工具。在Java中没有太多乐趣。作为额外的奖励,您可以使用Jenkins构建Java源代码并对其进行测试。如果您将来有额外的工作,您可以添加它们而无需修改。而且,如果你在团队环境中工作,人们可能已经熟悉詹金斯了。你还可以免费获得bug修复(可能还有插件)。而且…这看起来很酷!我一定要试一试。是否可以在Windows Azure云上部署此应用程序?我还没有这样做,但它只是一个java Web应用程序。因此,如果您可以安装java、tomcat并部署war,我认为这是可能的。如果你想签出并构建你的代码,它需要访问你的svn/git回购。很抱歉,我不清楚我的要求。我更新了我的问题以反映他们。我想这会有用,但我想看看滚动日志。另外,进程的运行时间可能比HTTP超时时间长。我想在您的情况下,web服务仍然是一个选项。不是吗?你可以用某种comet/long轮询解决方案来滚动日志。确实是这样!我已经使用SpringMVC开发了几个站点。如果我要走这条路,我不是100%确定如何满足我的所有要求。因此,在我走这条路之前,我需要有人来帮助我。
$.getJSON("logs.htm", { lastLogId: logId }, function(response) {
$('#myTable tr:last').after('<tr><td>' + response + '</td></tr>');
});
@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);
}
}