使用部署在其中的Web应用程序关闭tomcat

Sma*_*ion 7 java tomcat jvm java-ee

我对我的webapp开发遇到的tomcat操作有些怀疑:

  1. 有没有办法从部署在其中的webapp关闭tomcat本身?
  2. tomcat是在一个JVM或单个JVM中运行它的所有webapps/war还是在一些配置文件中配置?
  3. 是否有可能增加在tomcat中部署的特定webapp的java堆大小?

非常感谢.

Grz*_*bek 7

  1. 从某个servlet打开TCP连接,并将"SHUTDOWN"发送到Tomcat的关闭端口(默认值:8005).
  2. 一个Tomcat为所有应用程序使用一个JVM.
  3. 不.仅适用于整个JVM.

这是第1点的代码:

Socket clientSocket = new Socket("localhost", 8005);
clientSocket.getOutputStream().write("SHUTDOWN".getBytes());
clientSocket.getOutputStream().close();
clientSocket.close();
Run Code Online (Sandbox Code Playgroud)

  • 只提供shutdown命令等于"SHUTDOWN"并侦听端口8005 - 两者都可以更改.有一个API可以检索两者:`Server server = org.apache.catalina.ServerFactory.getServer(); int port = server.getPort(); String shutdown = server.getShutdown();` (2认同)