I'm trying to debug an oracle forms application. In production, when I load the application I get an error: java.lang.ClassNotFoundException: oracle.forms.engine.Main
I'm uncertain as to what is causing this issue. I've been searching forums for a bout half a day now, and it seems like it may have something to do with a java versioning issue.
I've included the (slightly modified to protect my company) java console output, and if I'm reading it right, it looks like a certificate needs to be repackaged.
But, when I look at the certificate for the site it says that it's verified by verisign.
I'm using IE 9 to try to view the forms app, and I get a : java.lang.ClassNotFoundException: oracle.forms.engine.Main
In the Java console I get the following output:
Java Plug-in 1.6.0_45
Using JRE version 1.6.0_45-b06 Java HotSpot(TM) Client VM
User home directory = C:\Users\my_username
network: Cache entry not found [url: https://company_site.ca:4446/forms/java/frmall.jar, version: null]
network: Connecting https://company_site.ca:4446/forms/java/frmall.jar with proxy=DIRECT
network: Connecting http://company_site.ca:4446/ with proxy=DIRECT
javax.net.ssl.SSLException: Received fatal alert: unexpected_message
at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Unknown Source)
at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.recvAlert(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source)
at sun.net.www.protocol.https.HttpsClient.afterConnect(Unknown Source)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(Unknown Source)
at sun.plugin.PluginURLJarFileCallBack.connect(Unknown Source)
at sun.plugin.PluginURLJarFileCallBack.retrieve(Unknown Source)
at sun.net.www.protocol.jar.URLJarFile.retrieve(Unknown Source)
at sun.net.www.protocol.jar.URLJarFile.getJarFile(Unknown Source)
at sun.net.www.protocol.jar.JarFileFactory.get(Unknown Source)
at sun.net.www.protocol.jar.JarURLConnection.connect(Unknown Source)
at sun.plugin.net.protocol.jar.CachedJarURLConnection.connect(Unknown Source)
at sun.plugin.net.protocol.jar.CachedJarURLConnection.getJarFileInternal(Unknown Source)
at sun.plugin.net.protocol.jar.CachedJarURLConnection.getJarFile(Unknown Source)
at com.sun.deploy.security.DeployURLClassPath$JarLoader.getJarFile(Unknown Source)
at com.sun.deploy.security.DeployURLClassPath$JarLoader.access$1000(Unknown Source)
at com.sun.deploy.security.DeployURLClassPath$JarLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.deploy.security.DeployURLClassPath$JarLoader.ensureOpen(Unknown Source)
at com.sun.deploy.security.DeployURLClassPath$JarLoader.<init>(Unknown Source)
at com.sun.deploy.security.DeployURLClassPath$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.deploy.security.DeployURLClassPath.getLoader(Unknown Source)
at com.sun.deploy.security.DeployURLClassPath.getLoader(Unknown Source)
at com.sun.deploy.security.DeployURLClassPath.getResource(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.plugin2.applet.Plugin2ClassLoader.findClassHelper(Unknown Source)
at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source)
at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
... 3 more javax.net.ssl.sslexceptions
network: Cache entry not found [url: https://company_site.ca:4446/forms/java/, version: null]
network: Cache entry not found [url: https://company_site.ca:4446/forms/java/oracle/forms/engine/Main.class, version: null]
network: Connecting https://company_site.ca:4446/forms/java/oracle/forms/engine/Main.class with proxy=DIRECT
network: Connecting http://company_site.ca:4446/ with proxy=DIRECT
network: Cache entry not found [url: https://company_site.ca:4446/forms/java/oracle/forms/engine/Main.class, version: null]
network: Connecting https://company_site.ca:4446/forms/java/oracle/forms/engine/Main.class with proxy=DIRECT
network: Connecting http://company_site.ca:4446/ with proxy=DIRECT
basic: load: class oracle.forms.engine.Main not found.
load: class oracle.forms.engine.Main not found.
java.lang.ClassNotFoundException: oracle.forms.engine.Main
at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source)
at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Exception: java.lang.ClassNotFoundException: oracle.forms.engine.Main
Ignored exception: java.lang.ClassNotFoundException: oracle.forms.engine.Main
basic: Loading Java Applet Failed...
Is this a Java versioning issue, or is something amiss on the server side? Is there an apparent reason why java can't find the oracle forms engine?
Apologies for the long, gross-looking text, but I'm guessing that it's needed to figure out what going on here.
Many thanks for any help or direction you can give!
I found a workaround for this issue - not really a solution, but I'm in IT so it's close enough.
I was using Java 7u51.
I went into control panel -> Java -> Advanced
Under Advanced Security settings I selected:
Use SSL 2.0 ClientHello format
Use SSL 3.0
Use TLS 1.0
(those happen to be the types of connections the server accepted)
I also went into the security tab and added the site to the Exception Site List
Lastly, I went into the Java tab and clicked View. I then deselected Java 1.7.0_51 from my installed JREs.
I'm not entirely clear on how/why all of this worked when uninstalling & disabling other versions of java didn't. But I'm glad to have the site up and working again.
Hope this helps someone else in future.