我一直在开发一个仅供 Intranet 使用的 Web 应用程序。我使用 Apache 7 和 Windows Server 2003。
在我的一个页面中,我需要打开一个外部应用程序,我们可以在 C:/Program Files/etc... 中找到它,其中一些参数已经初始化。当然,用户必须使用服务器上的 Web 应用程序才能使其工作(就是这种情况)。
要打开应用程序,我使用ProcessBuilder
对象。
问题:
当我在本地使用 Eclipse 并手动运行服务器时,它运行良好。任何应用程序都可以从网页打开自己。但是当我使用 tomcat windows 服务(这就是我们想在服务器上使用的)时,它永远不会启动。或者更具体地说,它直接启动和停止应用程序。没有抛出 java 错误并且process.waitFor()
退出值为 0。事实是我们可以通过 Web 应用程序运行进程(我尝试运行简单的批处理文件),但是当涉及 UI 时,它永远不会出现。
同样,这次在服务器上,如果我通过双击或 cmd 启动 tomcat7.exe(我们可以在 %CATALINA_HOME%/bin 目录中找到),将出现 Web 应用程序中的 UI。如果我使用 services.msc 或 tomcat7w.exe 或tomcat7 start
通过 cmd 启动它,它不会。
我想到了几件事:
- 使用另一个用户启动服务
- 更改服务的启动方式(StartMode:jvm,java。我没有成功使用 exe)我多次阅读Tomcat 7 Windows Service How-To ,但没有找到任何解决问题的方法。
你知道发生了什么,以及如何解决这个问题吗?将tomcat作为服务运行和从命令行运行之间的最大区别是什么?