Viewing oracle app and getting: java.lang.ClassNotFoundException: oracle.forms.engine.Main

Rolan picture Rolan · Mar 18, 2014 · Viewed 37.3k times · Source

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!

Answer

Rolan picture Rolan · Mar 20, 2014

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.