如何停止JFinal

DeanHere 发布于 2014/04/23 11:07
阅读 262
收藏 1

JFinal部署在tomcat上并随tomcat启动

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

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

加载中
0
JFinal
JFinal

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

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

shutdown.sh 或 shutdown.bat

北京-卫斯理
北京-卫斯理
回复 @DeanHere : 这个用代码控制容器开关,不是太好弄应该
DeanHere
DeanHere
无代码方式? if (failedLoading) { // to stop JFinal ..... }
0
backtract
backtract

在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了






返回顶部
顶部