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. 使用maven啓動/停止tomcat
- 5. 如何在停止後啓用apache tomcat 8.5
- 6. 無法停止Tomcat
- 7. 如何停止線程當Tomcat停止
- 8. 監測在Tomcat中使用JMX
- 9. Apache停止響應SSL + mod_jk
- 10. 使用JMX(或WLST)在Weblogic 9中啓動/停止部署
- 11. tomcat在使用SSL轉移到mod_proxy_ajp時停止在apache後面服務
- 12. 我的eclipse + apache tomcat/6.0.30停止提供文件
- 13. 如何停止所有端口的Apache Tomcat
- 14. Tomcat 7停止響應
- 15. 何時使用Apache與Apache + Tomcat?
- 16. 使用Apache Tomcat的socket.io
- 17. 使用Apache Tomcat的OpenSSL 6
- 18. 通過JMX監控Tomcat
- 19. Tomcat中JMX的RMI存根
- 20. 停止Tomcat以保存用戶憑據
- 21. 在從Apache Tomcat取消部署/停止應用程序之前停止進程/線程
- 22. 停止apache mina服務器
- 23. XAMPP Apache服務停止
- 24. 停止Apache重寫規則
- 25. Apache Procrun - 停止命令不起作用
- 26. Apache Tomcat啓用HTTP
- 27. 如何在Apache ActiveMQ中啓用JMX
- 28. 如何使用Java啓動和停止Tomcat容器?
- 29. 如何使用java代碼啓動和停止tomcat?
- 30. 如何清潔數據庫而不停止使用java的tomcat
可能是你可以使用Runtime類來執行命令停止Tomcat,你會從命令行執行的方式。 – virendrao
這對我來說似乎是一個巨大的安全漏洞。 – duffymo
你能告訴我一些Java代碼示例嗎? –