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 serverwhen 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.

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:

@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:

@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%

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