Search code examples
tomcatwar

deploy eHour in Apache Tomcat


I need your help because I try to install eHour on my server (it is a windows server) without success:

as described in the documentation, there are two types of installations:

  • Standalone
  • War file (documentation link seems bad and go to old installation instructions, new is here )

First, I try Standalone way but even if eHour service was running, I didn't have any web pages.
So I uninstall eHour and try to use the War file way

as it is a new server, I install Apache Tomcat (version 10.0.4) and mysql Then, I copy WAR distribution and I unzip it to my C drive (I also renamed the folder from ehour-1.4.3 to ehour)
Then I create a setevn.bat file and create a variable EHOUR_HOME
set EHOUR_HOME="c:\ehour"

Then I download mysql connector and copy file mysql-connector-java-8.0.23.jar to Tomcat 10.0/lib directory

Finally, I rename the war file from ehour-1.4.3.war to ehour.war and copy it to Tomcat 10.0/webapps directory

I start apache and a directory ehour has been added to Tomcat 10.0/webapps directory but localhost:8080/ehour result is 404 : The requested resource [/ehour] is not available.

I look in catalina log but see nothing that help me

Any tips ?

it seems I do have same error than here : in file localhost.log I do have similar error:

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)

Howerver, I do create a file setenv.bat in Tomcat/bin directory its contents is :
set EHOUR_HOME="c:\ehour"
something I miss?


Solution

  • You are using Windows, so you are probably using 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 for screenshots).

    Unfortunately you can't configure environment variables through the graphical interface, so either:

    • add the environment variable globally (for all users) to your system,

    • or add the environment variable to procrun either:

      • run
        Tomcat10.exe update "++Environment=C:\ehour"
        
        (Tomcat10.exe is a copy of procrun and is in the bin directory of Tomcat's installation),
      • add to the windows registry key HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Apache Software Foundation\Procrun 2.0\<service_name>\Parameters a new value named Environment of type REG_MULTI_SZ with data EHOUR_HOME=C:\ehour.

    Edit: There are actually three different sources for the EHOUR_HOME configuration parameter (cf. EhourHomeUtil and EnvInitListener), which are looked up in this order:

    1. the Java system property EHOUR_HOME, which you can configure in e.g. $CATALINA_BASE/conf/catalina.properties,
    2. the OS environment variable EHOUR_HOME, configured as explained above,
    3. the servlet context init parameter EHOUR_HOME, which can be configured in the appropriate context file:
    <Parameter name="EHOUR_HOME" value="/path/to/ehour" />