我正在使用start.jar和stop.jar来停止并启动我的jetty实例。 我通过调用stop.jar然后start.jar重新启动。 问题是,如果我在stop.jar和start.jar之间没有足够长的时间睡眠,我会开始获取这些随机的ClassNotFoundExceptions,并且应用程序无法正常工作。
在停止和开始之间睡一段时间是我目前的选择。
我也从别人那里听说我应该有管理我的线程的东西,以便我在码头完成之前结束那些。 它是否正确?我对此有一个问题是stop.jar会立即返回,所以它似乎对我没有帮助,除非有我遗漏的东西。 另一种选择可能是轮询日志文件,但这非常难看。
重启码头的最佳方法是什么?
Gilbert:Ant任务绝对不是一个糟糕的做法。但是,它会睡一段时间,这正是我想要避免的。
答案 0 :(得分:1)
在调用shutdown之后和调用startup之前,你能编写一个shell脚本吗?
LISTEN_PORT = `netstat -vatn | grep LISTEN| grep 8080 | wc -l ` while [$LISTEN_PORT -ne 0] ; do sleep 1 LISTEN_PORT = `netstat -vatn | grep LISTEN| grep 8080 | wc -l ` done
答案 1 :(得分:1)
这个帖子看起来很旧,但无论如何发帖,可能对某人有帮助。跨平台方法:
http://ptrthomas.wordpress.com/2009/01/24/how-to-start-and-stop-jetty-revisited/
答案 2 :(得分:0)
你试过JFGI吗? 设置可以为您完成工作的Ant任务?
此博客文章详细介绍了如何设置可以启动和停止码头的目标。您可以轻松拼凑另一个名为“jetty-restart”的目标,该目标取决于“jetty-stop”,然后调用“jetty-start”。
http://ptrthomas.wordpress.com/2006/10/10/how-to-start-and-stop-jetty-from-ant/