2
A
回答
8
通過自己的Tomcat的不來從JMX
的能力,關機操作運行,基本上它是不安全的!但如果你真的需要它,你需要創建自己的ShutdownMBean
。創建MBean
並在應用程序部署中註冊它非常簡單直接。 讓我們先創建ShutdownMBean
界河將有名字,並公開一個doShutdown()
操作。
public interface ShutdownMBean {
void doShutdown();
String getName();
}
實現是很容易爲好,只要發送SHUTDOWN
信號到默認的Tomcat關閉端口。
public class Shutdown implements ShutdownMBean{
@Override
public void doShutdown() {
try {
Socket clientSocket = new Socket("localhost", 8005);
clientSocket.getOutputStream().write("SHUTDOWN".getBytes());
clientSocket.getOutputStream().close();
clientSocket.close();
} catch (IOException e) {
}
}
@Override
public String getName() {
return "Shutdown JMX Hook";
}
}
,並在剛剛結束註冊上下文初始化後ShutdownMBean
(我假設你使用的是Tomcat 7+):
@WebListener
public class ShutdownListener implements javax.servlet.ServletContextListener{
@Override
public void contextDestroyed(ServletContextEvent arg0) {
}
@Override
public void contextInitialized(ServletContextEvent arg0) {
try {
ShutdownMBean shutdownMBean = new Shutdown();
MBeanServer server = ManagementFactory.getPlatformMBeanServer();
ObjectName name = new ObjectName("com.example:type=Shutdown");
server.registerMBean(shutdownMBean, name);
} catch (InstanceAlreadyExistsException | MBeanRegistrationException | NotCompliantMBeanException | MalformedObjectNameException e) {
}
}
}
完蛋了,只需部署應用程序,連接到使用JConsole
你的Tomcat你會發現doShutdown
運行在com.example
組
相關問題
- 1. Apache如何檢測停止的Tomcat JVM?
- 2. 停止提示輸入密碼Apache Tomcat
- 3. Tomcat的JMX CPU使用率
- 4. django停止使用mod_wsgi/apache
- 5. PHP停止使用Apache
- 6. 使用maven啓動/停止tomcat
- 7. 如何在停止後啓用apache tomcat 8.5
- 8. ServletContextListener正在停止在Apache Tomcat上部署Web應用程序
- 9. Tomcat停止響應
- 10. 無法停止Tomcat
- 11. 處理tomcat停止
- 12. 監測在Tomcat中使用JMX
- 13. 如何停止線程當Tomcat停止
- 14. Apache停止響應SSL + mod_jk
- 15. 使用JMX html適配器和Apache Camel JMX
- 16. 使用JMX(或WLST)在Weblogic 9中啓動/停止部署
- 17. tomcat在使用SSL轉移到mod_proxy_ajp時停止在apache後面服務
- 18. 如何停止所有端口的Apache Tomcat
- 19. Apache Tomcat 8.5.2 + Resteasy CORS過濾器突然停止工作
- 20. 我的eclipse + apache tomcat/6.0.30停止提供文件
- 21. Tomcat 7停止響應
- 22. Tomcat服務停止在undeplyment
- 23. 何時使用Apache與Apache + Tomcat?
- 24. 使用Apache Tomcat運行瘦?
- 25. 使用Apache Tomcat的socket.io
- 26. 使用Apache Tomcat的OpenSSL 6
- 27. Tomcat中JMX的RMI存根
- 28. 通過JMX監控Tomcat
- 29. 停止Tomcat以保存用戶憑據
- 30. 在從Apache Tomcat取消部署/停止應用程序之前停止進程/線程
可能是你可以使用Runtime類來執行命令停止Tomcat,你會從命令行執行的方式。 – virendrao
這對我來說似乎是一個巨大的安全漏洞。 – duffymo
你能告訴我一些Java代碼示例嗎? –