Overview
During the installation of Aurea Process (aka Savvion) Business Manager (SBM) 2015 SP1 on a Linux OS supported by SBM 2015 SP1, the installer is not able to connect to your Oracle DB and displays the following error:
The sbm_install_output.log created by the installer displays the following Java exception errors:
at com.savvion.ia.util.CommonUtil.testJDBCConnection(Unknown Source)
at com.savvion.ia.db.gui.DatabaseCredential.actionPerformed(DatabaseCredential.java:81)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6539)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6304)
at java.awt.Container.processEvent(Container.java:2239)
at java.awt.Component.dispatchEventImpl(Component.java:4889)
at java.awt.Container.dispatchEventImpl(Container.java:2297)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4904)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4535)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4476)
at java.awt.Container.dispatchEventImpl(Container.java:2283)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
at java.awt.EventQueue$4.run(EventQueue.java:733)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:730)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: java.lang.NoClassDefFoundError: sun/io/CharToByteConverter
at com.savvion.jdbc.oracle.OracleImplConnection.a(Unknown Source)
at com.savvion.jdbc.oracle.OracleImplConnection.a(Unknown Source)
at com.savvion.jdbc.oracle.OracleImplConnection.a(Unknown Source)
at com.savvion.jdbc.oracle.OracleImplConnection.z(Unknown Source)
at com.savvion.jdbc.oraclebase.BaseConnection.b(Unknown Source)
at com.savvion.jdbc.oraclebase.BaseConnection.k(Unknown Source)
at com.savvion.jdbc.oraclebase.BaseConnection.a(Unknown Source)
at com.savvion.jdbc.oraclebase.BaseConnection.a(Unknown Source)
at com.savvion.jdbc.oraclebase.BaseDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:247)
... 38 more
Caused by: java.lang.ClassNotFoundException: sun.io.CharToByteConverter
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:419)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
at java.lang.ClassLoader.loadClass(ClassLoader.java:352)
... 49 more
When you try to connect to the Oracle DB using an external SQL IDE it connects with no issues.
Prerequisites
- A machine with a supported distribution and version of Linux that SBM 2015 SP1 will be installed onto.
- Java JDK 7 is installed on the Linux system that SBM 2015 SP1 will be installed onto.
- Permissions to run the sudo command on the Linux system that SBM 2015 SP1 will be installed onto.
Solution
Diagnosis
This problem will occur when SBM 2015 SP1 is installed onto a supported distribution and version of Linux where:
- The system default Java JDK is set to version 1.8
- Java JDK 7 is also installed on this system
- You running the installer from a user environment where the Java environment variables have been set to use Java JDK 7.
The SBM 2015 SP1 installer uses the Install Anywhere tool for creating Java-based software installers and this tool always picks up Java from the Java system default on Linux.
The installer's use of Java system default of Java JDK 1.8 instead of the expected Java JDK 7 can be identified by the following Java exception found in the sbm_install_output.log:
The above Java class not found exception is thrown because the class sun.io.CharToByteConverter was available in Java JDK 7 but was deprecated in Java JDK 1.8.
Solution Steps
To ensure your Linux system is configured to use Java JDK 7 as the default Java runtime environment you will need to do the following:
- Check available Java versions on your Linux system by using the update-alternatives command:
sudo update-alternatives --display java - This will list the installed version of Java on the server, you can switch the default Java version among available Java JREs by running the following command:
sudo update-alternatives --config java - When prompted, select the Java JDK 7 that is installed on your Linux system.
- Now you can verify the default Java version changed as follows.
java -versionAfter running this command you should see output that is similar to the following where the java version is 1.7 which indicates you are using Java JDK 7:java version "1.7.0_05"
Java(TM) SE Runtime Environment (build 1.7.0_05-b06)
Java HotSpot(TM) 64-Bit Server VM (build 23.1.-b03, mixed mode)
Testing
Once the default system Java is set to JDK 7 on the Linux server, the installer should be able to connect to the Oracle Database