3
回答
如何停止JFinal
终于搞明白,存储TCO原来是这样算的>>>   

JFinal部署在tomcat上并随tomcat启动

在afterJFinalStart()中加载系统必需数据,如果加载失败需要强制停止JFinal。

请问如何处理或其他建议。

举报
DeanHere
发帖于3年前 3回/222阅
共有3个答案 最后回答: 3年前

tomcat 默认的停止端口是 8005,代码方式停止只需要往 8005 端口发送适当的数据,具体要发的数据查下 tomcat 官方网站

--- 共有 3 条评论 ---
DeanHere回复 @JFinal : 这也是一个方法,谢谢指点。 3年前 回复
JFinal回复 @DeanHere : 做个Handler或者全局拦截器,里面放个开关变量,利用开关变量决定是否做事 3年前 回复
DeanHere其实想让JFinal服务在这种情况下不做任何事情,或拒绝所有请求,而不是停止tomcat。 3年前 回复

在tomcat的server.xml中找到以下节点

<Server port="8005" shutdown="SHUTDOWN">

SHUTDOWN为关闭的命令,8005为接收该命令的端口。具体值根据自己tomcat配置文件做相应修改。然后调用以下代码:

import java.io.OutputStream;
import java.net.Socket;

/**
 * 关闭tomcat
 * @author Administrator
 *
 */
public class ShutdownTomcat {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		try {
			// 一般都是8005端口
			Socket socket = new Socket("127.0.0.1", 8005);
			OutputStream stream = socket.getOutputStream();
			// 关闭命令
			String shutdown = "SHUTDOWN";
			for (int i = 0; i < shutdown.length(); i++)
				stream.write(shutdown.charAt(i));
			stream.flush();
			stream.close();
			socket.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}

就可以关闭tomcat了






顶部