Page 1 of 1

Servoy Client won't start after JAVA 8

PostPosted: Tue May 03, 2016 11:48 pm
by wes.s.grayson
I'm running Servoy 7.3.1. My corporation is in the process of rolling out JAVA 8 Update 91. Every machine that has JAVA 8 can no longer open my solution. Machines running JAVA 7, Update 99 work fine. The client opens and says "Ready" but the solution never loads. The only meaningful error I see in the Java console is "java.lang.UnsupportedClassVersionError: com/sun/javafx/runtime/VersionInfo : Unsupported major.minor version 52.0".

I am currently not using SSL, so it shouldn't be certificate related. I notice in Servoy Settings I have a JAVA MIN Version and a JAVA MAX version. The only choices are Java 6 or Java 7 in the drop down. Is Servoy 7 compatible with JAVA 8? Any ideas of what I need to do?

thanks,
Wes

Re: Servoy Client won't start after JAVA 8

PostPosted: Wed May 04, 2016 2:43 pm
by Harjo
what if you bring the server down, and manually add/change the servoy_properties file and add/change Java8 to the max version entry?

Re: Servoy Client won't start after JAVA 8

PostPosted: Wed May 04, 2016 3:01 pm
by wes.s.grayson
I manually changed the servoy_properties file to add JAVA 8, but it didn't fix the problem. I didn't bring the server down to do it, is that necessary? I was thinking that when the server starts back up it would write over that file.

Re: Servoy Client won't start after JAVA 8

PostPosted: Wed May 04, 2016 3:05 pm
by Harjo
yes, you have to bring server down first! than change the servoy-propertie file and bring it back up

Re: Servoy Client won't start after JAVA 8

PostPosted: Wed May 04, 2016 3:07 pm
by wes.s.grayson
here's the full Console errors:

java.lang.UnsupportedClassVersionError: com/sun/javafx/runtime/VersionInfo : Unsupported major.minor version 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at com.sun.deploy.config.JfxRuntime.runtimeForPath(Unknown Source)
at com.sun.deploy.config.JREInfo.<init>(Unknown Source)
at com.sun.deploy.config.JREInfo.setInstalledJREList(Unknown Source)
at com.sun.deploy.config.ClientConfig.storeInstalledJREs(Unknown Source)
at com.sun.javaws.Main.launchApp(Unknown Source)
at com.sun.javaws.Main.continueInSecureThread(Unknown Source)
at com.sun.javaws.Main.access$000(Unknown Source)
at com.sun.javaws.Main$1.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
java.lang.UnsupportedClassVersionError: com/sun/javafx/runtime/VersionInfo : Unsupported major.minor version 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at com.sun.deploy.config.JfxRuntime.runtimeForPath(Unknown Source)
at com.sun.deploy.config.JREInfo.<init>(Unknown Source)
at com.sun.deploy.config.JREInfo.setInstalledJREList(Unknown Source)
at com.sun.deploy.config.ClientConfig.storeInstalledJREs(Unknown Source)
at com.sun.javaws.Main.launchApp(Unknown Source)
at com.sun.javaws.Main.continueInSecureThread(Unknown Source)
at com.sun.javaws.Main.access$000(Unknown Source)
at com.sun.javaws.Main$1.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Exception in thread "AWT-EventQueue-2" java.lang.ExceptionInInitializerError
at com.servoy.j2db.smart.dataui.SpecialTabPanel.<init>(SpecialTabPanel.java:126)
at com.servoy.j2db.smart.dataui.SpecialTabPanel.<init>(SpecialTabPanel.java:106)
at com.servoy.j2db.smart.dataui.SwingItemFactory.createAccordionPanel(SwingItemFactory.java:128)
at com.servoy.j2db.component.ComponentFactory.createTabPanel(ComponentFactory.java:1983)
at com.servoy.j2db.component.ComponentFactory.createComponentEx(ComponentFactory.java:368)
at com.servoy.j2db.component.ComponentFactory.createComponent(ComponentFactory.java:257)
at com.servoy.j2db.smart.dataui.DataRendererFactory.placeElements(DataRendererFactory.java:300)
at com.servoy.j2db.smart.dataui.DataRendererFactory.completeRenderers(DataRendererFactory.java:266)
at com.servoy.j2db.FormController.createDataRenderers(FormController.java:2545)
at com.servoy.j2db.FormController.init(FormController.java:2376)
at com.servoy.j2db.FormManager.leaseFormPanel(FormManager.java:897)
at com.servoy.j2db.scripting.CreationalPrototype.get(CreationalPrototype.java:163)
at org.mozilla.javascript.ScriptableObject.getProperty(ScriptableObject.java:2141)
at org.mozilla.javascript.ScriptRuntime.getObjectProp(ScriptRuntime.java:1518)
at org.mozilla.javascript.ScriptRuntime.getObjectProp(ScriptRuntime.java:1505)
at org.mozilla.javascript.gen.SPCentral_scopes_globals_onSolutionOpen_3._c_onSolutionOpen_0(SPCentral/scopes/globals/onSolutionOpen:3657)
at org.mozilla.javascript.gen.SPCentral_scopes_globals_onSolutionOpen_3.call(SPCentral/scopes/globals/onSolutionOpen)
at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:406)
at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3204)
at org.mozilla.javascript.gen.SPCentral_scopes_globals_onSolutionOpen_3.call(SPCentral/scopes/globals/onSolutionOpen)
at com.servoy.j2db.scripting.ScriptEngine.executeFunction(ScriptEngine.java:624)
at com.servoy.j2db.scripting.ScopesScope.executeGlobalFunction(ScopesScope.java:164)
at com.servoy.j2db.FormManager.makeSolutionSettings(FormManager.java:339)
at com.servoy.j2db.smart.SwingFormManager.makeSolutionSettings(SwingFormManager.java:179)
at com.servoy.j2db.FormManager$1.run(FormManager.java:168)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$300(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.lang.SecurityException: class "com.l2fprod.common.swing.plaf.basic.BasicOutlookButtonUI$OutlookButtonBorder" does not match trust level of other classes in the same package
at com.sun.deploy.security.CPCallbackHandler$ChildElement.checkResource(Unknown Source)
at com.sun.deploy.security.DeployURLClassPath$JarLoader.checkResource(Unknown Source)
at com.sun.deploy.security.DeployURLClassPath$JarLoader.getResource(Unknown Source)
at com.sun.deploy.security.DeployURLClassPath.getResource(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at com.sun.jnlp.JNLPClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at com.sun.jnlp.JNLPClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at com.l2fprod.common.swing.plaf.JOutlookBarAddon.addBasicDefaults(JOutlookBarAddon.java:77)
at com.l2fprod.common.swing.plaf.AbstractComponentAddon.addWindowsDefaults(AbstractComponentAddon.java:105)
at com.l2fprod.common.swing.plaf.AbstractComponentAddon.getDefaults(AbstractComponentAddon.java:134)
at com.l2fprod.common.swing.plaf.AbstractComponentAddon.initialize(AbstractComponentAddon.java:52)
at com.l2fprod.common.swing.plaf.LookAndFeelAddons.contribute(LookAndFeelAddons.java:233)
at com.l2fprod.common.swing.JOutlookBar.<clinit>(JOutlookBar.java:67)
... 39 more

Re: Servoy Client won't start after JAVA 8

PostPosted: Wed May 04, 2016 3:13 pm
by Harjo
ah, this is caused by some other thing: Caused by: java.lang.SecurityException: class "com.l2fprod.common.swing.plaf.basic.BasicOutlookButtonUI$OutlookButtonBorder" does not match trust level of other classes in the same package

do you start somehow the smart-client by using your own batfile? or in console: like javaws http://blablabla/myjnlp.jnlp ?
same is discussed here: viewtopic.php?f=6&t=21286

Re: Servoy Client won't start after JAVA 8

PostPosted: Wed May 04, 2016 5:52 pm
by wes.s.grayson
Users start the app by initially going to http://myserver:8080/servoy-client/servoy_client.jnlp. That puts a shortcut for future use that links to:

""C:\Program Files\Java\jre1.8.0_91\bin\javaws.exe" -localfile -J-Djnlp.application.href=http://myserver:8080/servoy-client/servoy_client.jnlp "C:\Users\username\AppData\LocalLow\Sun\Java\Deployment\cache\6.0\6\673f6246-36772710"

Within Java Control Panel I unchecked "keep temporary files on my computer" and that fixed the problem, but now users would have to launch from the website every time. Shortcut goes away.

thanks,
Wes

Re: Servoy Client won't start after JAVA 8

PostPosted: Wed May 04, 2016 11:31 pm
by kwpsd
Hi, Wes.

Unsupported major.minor version 52.0.


I have seen this before when using Jasper Studio (after switching to JRE 8.0)...it doesn't like the MSSQL JDBC driver. To get around this problem, I use the JTDS JDBC driver in Jasper Studio to create reports. Once created, the reports run without problems on our customer's Servoy server that is using the MSSQL JDBC driver running on JRE 8.0. My Servoy Developer uses the same JRE 8.0 and seems to run fine.

I would like to know how to fix this as well. Perhaps, someone will recognize the commonality (MSSQL JDBC driver?) between our two situations and can provide an answer. I know this isn't much help...my knowledge of Java's inner workings is rather limited.

Re: Servoy Client won't start after JAVA 8

PostPosted: Mon May 09, 2016 9:41 am
by jcompagner
there are 2 errors here i think,
one is the SecurityException which is resolved i guess now in that other forum thread. (you really have to check the jars (mostly 3th party) to see if they have bogus Name: xxx in there manifest files)


the other one is weird. it seems to me that you don't really run with java8.. because i think the major version of java8 is 52. So do those system both have java 7 and java 8 installed?
What does the first lines of the java console say? (i think there it should mention what it really uses for the application)