When the product is updated, a new Java version will be included. We have noticed that sometimes the service does not start, especially when a Java VM has been installed previously.
The service that we install requires the java runtime executable (runtime/bin/java) to have certain traits to allow the service to run at port 80 and 443 - or any other port in the restricted services range below 1024.
The service does therefore use the setcap 'cap_net_bind_service+ep' program to ensure these traits. In addition the the LD_LIBRARY_PATH has to be set so the java program can access libjli.so. This is done using a custom file entry in the path /etc/ld.so.conf.d/ with a single line to the path of libjli.so and an update of the ldconfig.
The error undefined symbol: JLI_InitArgProcessing or JLI_StringDup can be mitigated by checking for previous java installations that might interfere. Check the /etc/ld.so.conf.d/ path for a *-java.conf file and its contents. It is possible that this file is a leftover and can be moved aside.
Re-run sudo ldconfig to reload any changes made in the /etc/ld.so.conf.d/ path and try to restart the service.
In short order:
-
ls /etc/ld.so.conf.d | grep java- There should be only one file with the name
<service>-java.conf - You may check the content of the other files. If they do not match the installation folder of the service: move them aside
- There should be only one file with the name
sudo ldconfig