我使用我的eclipse部署了一个java服务器。
我提取war
文件。
我在我的Windows Server 2003上安装了apache-tomcat-7.0.47
我在我的Windows Server 2003上安装了Apache Tomcat 7
服务并使其自动运行。
我想在我的Windows Server 2003上运行war
文件
我将war
文件放在apache-tomcat
文件夹中的webapps上,然后运行位于startup.bat
文件夹中的bin
。
我测试服务器并且它运行良好
当我从我的Windows服务器登录时。战争文件停止工作。
如何在我登录时保持服务器正常工作。 请注意我安装了该服务并多次重启服务器。
答案 0 :(得分:3)
执行此操作的一种方法是使用Java Server Wrapper或http://support.microsoft.com/kb/137890
在java本身中似乎有一种方法可以做到这一点,在Oracle Documentation中添加-Xrs到服务器启动中的java.exe调用(我认为是bat文件)。注意使用它的后果!
-Xrs减少Java VM对操作系统信号的使用。
在早期版本中,添加了Shutdown Hooks工具以启用 有序地关闭Java应用程序。目的是启用用户 要运行的清理代码(例如关闭数据库连接) 即使Java VM突然终止也会关闭。
Java VM监视控制台控制事件以实现关闭 挂钩意外的Java VM终止。具体来说,就是Java VM 注册一个控制台控制处理程序,它开始shutdown-hook 处理并为CTRL_C_EVENT,CTRL_CLOSE_EVENT返回TRUE, CTRL_LOGOFF_EVENT和CTRL_SHUTDOWN_EVENT。
JVM使用类似的机制来实现转储功能 线程堆栈用于调试目的。 JVM使用CTRL_BREAK_EVENT来 执行线程转储。
如果Java VM作为服务运行(例如,servlet引擎) 对于Web服务器),它可以接收CTRL_LOGOFF_EVENT但应该 不启动关机,因为操作系统实际上不会 终止进程。为了避免可能的干扰, 从J2SE 1.3.1开始添加-Xrs命令行选项。什么时候 -Xrs选项用于Java VM,Java VM不安装 控制台控制处理程序,暗示它不会监视或 处理CTRL_C_EVENT,CTRL_CLOSE_EVENT,CTRL_LOGOFF_EVENT或 CTRL_SHUTDOWN_EVENT。
指定-Xrs有两个结果:
Ctrl-Break线程转储不可用。
用户代码负责导致关闭挂钩运行 例如,当要终止Java VM时调用System.exit()。
答案 1 :(得分:1)
阅读aksappy
的回答后。我发现jvm正在解决这个问题。我转到bin
的{{1}}文件夹并运行apache-tomcat
,然后我转到关机标签,将tomcat7w.exe
更改为jvm
。
答案 2 :(得分:0)
您可以在server.xml中为Web应用程序设置“deployIgnore”属性;此属性将忽略部署中的war文件名。稍后您可以手动部署应用程序