在 Apache 中部署 eHour Tomcat

deploy eHour in Apache Tomcat

我需要你的帮助,因为我尝试在我的服务器(它是 windows 服务器)上安装 eHour 但没有成功:

documentation中所述,安装有两种类型:

首先,我尝试了独立方式,但即使 eHour 服务是 运行,我也没有任何网页。
所以我卸载了eHour并尝试使用War文件方式

由于是新服务器,我安装了 Apache Tomcat(版本 10.0.4)和 mysql 然后,我复制 WAR 发行版并将其解压缩到我的 C 盘(我还将文件夹从 ehour-1.4.3 重命名为 ehour)
然后我创建一个 setevn.bat 文件并创建一个变量 EHOUR_HOME
set EHOUR_HOME="c:\ehour"

然后我下载 mysql 连接器并将文件 mysql-connector-java-8.0.23.jar 复制到 Tomcat 10.0/lib 目录

最后,我将 war 文件从 ehour-1.4.3.war 重命名为 ehour.war 并将其复制到 Tomcat 10.0/webapps 目录

我启动了 apache,一个目录 ehour 已经添加到 Tomcat10.0/webapps 目录 但是 localhost:8080/ehour 结果是 404:请求的资源 [/ehour] 不可用。

我查看了 catalina 日志,但没有找到对我有帮助的东西

有什么建议吗?

看来我确实有与 here 相同的错误: 在文件 localhost.log 中我确实有类似的错误:

EHOUR_HOME environment variable or context parameter not defined   
nested exception is java.io.FileNotFoundException: ${EHOUR_HOME}\conf\ehour.properties (The system cannot find the path specified)

但是,我确实在 Tomcat/bin 目录中创建了一个文件 setenv.bat 它的内容是:
set EHOUR_HOME="c:\ehour"
我想念什么?

您正在使用 Windows,因此您可能正在使用 Procrun (Commons Daemon/Tomcat Monitor) to start Tomcat as a Windows service. Procrun doesn't use the *.bat files at all, everything is configured through the graphical interface prunmgr (check this answer 进行屏幕截图)。

很遗憾,您无法通过图形界面配置环境变量,因此:

  • 将环境变量全局(对所有用户)添加到您的系统,

  • 或将环境变量添加到proc运行

    • 运行
      Tomcat10.exe update "++Environment=C:\ehour"
      
      Tomcat10.exe 是 proc运行 的副本,在 Tomcat 安装的 bin 目录中),
    • 向 windows 注册表项 HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Apache Software Foundation\Procrun 2.0\<service_name>\Parameters 添加一个名为 EnvironmentREG_MULTI_SZ 类型的新值,数据为 EHOUR_HOME=C:\ehour.

编辑: EHOUR_HOME 配置参数实际上有三个不同的来源(参见 EhourHomeUtil and EnvInitListener),按以下顺序查找:

  1. Java 系统 属性 EHOUR_HOME,您可以在例如$CATALINA_BASE/conf/catalina.properties,
  2. OS环境变量EHOUR_HOME,配置如上,
  3. servlet context init参数EHOUR_HOME,可以在appropriate context file:
  4. 中配置
<Parameter name="EHOUR_HOME" value="/path/to/ehour" />