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.jarthen 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:
@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.pathoption on line 12 - On line 12, replace the path specified by the
-Dloader.pathoption 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%
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.
