2.11 - Workaround for issue with JAR installers

Issue description

It is impossible to run any executable JAR Dashboard installer (whether Engineering, Health, Security or combined Engineering/Health) on a Microsoft Windows server when the target server already has a Dashboard 2.11.1, 2.11.2 or 2.11.3 (whether Engineering, Health, Security or combined Engineering/Health) installed on it. The symptoms are as follows:

  • When the new executable JAR installer is double clicked, the initial User Account Control prompt is displayed and then nothing happens.
  • If the new executable JAR installer is launched from the command line using the syntax java -jar name_of_jar_file.jar then the following error message is displayed:
Cannot find named resource: 'userInputLang.xml' AND 'userInputLang.xml_eng'
SEVERE: com.izforge.izpack.api.exception.IzPackException: java.lang.reflect.InvocationTargetException

If you are facing this issue, you should make the changes described below and then re-run the new installer.

This issue is not present when the impacted Dashboard releases are installed on Linux based servers.

Workaround

Locate the main installation location for all affected releases of CAST Dashboards (whether Engineering, Health, Security or combined Engineering/Health) installed on your server. If you are using the default installation locations defined in the installer, then this will be in:

%PROGRAMFILES%\CAST\Dashboards\<some_folder>

In this folder, you should find a file called startup.bat - you should first make a copy of this file in case you need to roll back. This file should look similar to this:

Modified startup.bat
@echo off
TITLE CAST-DASHBOARDS

set JAVA_MODULES=--add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.naming/com.sun.jndi.ldap=ALL-UNNAMED

:: Get the available java version
for /f tokens^=2-5^ delims^=.-_+^" %%j in ('java -fullversion 2^>^&1') do set "jver=%%j%%k%%l"
:: remove java modules options if below java 16
if %jver% LSS 1600 set JAVA_MODULES=

java -version
java %JAVA_MODULES% -Dloader.path="C:\ProgramData\CAST\Dashboards\EDHD" -jar -Xmx1024m -Xms256m cast-health-engineering-dashboard.jar
if %errorlevel% neq 0 exit /b %errorlevel%

Edit this file as follows:

  • On line 5, add a new entry set userDataPath="<path>"  - in between the quote marks, paste in the path that is specified by the -Dloader.path option on line 12
  • On line 12, replace the path specified by the -Dloader.path option with %userDataPath%

For example:

Modified startup.bat
@echo off
TITLE CAST-DASHBOARDS

set JAVA_MODULES=--add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.naming/com.sun.jndi.ldap=ALL-UNNAMED
set userDataPath="C:\ProgramData\CAST\Dashboards\HDED"
:: Get the available java version
for /f tokens^=2-5^ delims^=.-_+^" %%j in ('java -fullversion 2^>^&1') do set "jver=%%j%%k%%l"
:: remove java modules options if below java 16
if %jver% LSS 1600 set JAVA_MODULES=

java -version
java %JAVA_MODULES% -Dloader.path=%userDataPath% -jar -Xmx1024m -Xms256m cast-health-engineering-dashboard.jar
if %errorlevel% neq 0 exit /b %errorlevel%

There is no need to modify anything else, in particular, do not change the name of the .jar file defined on line 12.

Repeat this process for ALL CAST Dashboards you have installed on the current server. Save the files and now re-run the new installer.