I updated the Java Runtime on a client to version 1.8.0.241 (Windows 10 x64) and now I can not start the SmartClient. The solution begins to start and after logging in to my solution I get the error “Cannot load solution” and have to close the window.
I have the following error in the Java console log:
SCHWERWIEGEND: Method is not Remote: interface com.servoy.j2db.persistence.IRepository::public abstract java.util.List com.servoy.j2db.persistence.IRepository.getActiveSolutionModuleMetaDatas(int) throws java.rmi.RemoteException,com.servoy.j2db.persistence.RepositoryException
java.rmi.RemoteException: Method is not Remote: interface com.servoy.j2db.persistence.IRepository::public abstract java.util.List com.servoy.j2db.persistence.IRepository.getActiveSolutionModuleMetaDatas(int) throws java.rmi.RemoteException,com.servoy.j2db.persistence.RepositoryException
at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(Unknown Source)
at java.rmi.server.RemoteObjectInvocationHandler.invoke(Unknown Source)
at com.sun.proxy.$Proxy15.getActiveSolutionModuleMetaDatas(Unknown Source)
at com.servoy.j2db.ClientRepository.getActiveSolutionModuleMetaDatas(ClientRepository.java:165)
at com.servoy.j2db.FlattenedSolution.setSolution(FlattenedSolution.java:650)
at com.servoy.j2db.ClientState.loadSolutionsAndModules(ClientState.java:1456)
at com.servoy.j2db.smart.J2DBClient.loadSolutionsAndModules(J2DBClient.java:2030)
at com.servoy.j2db.smart.J2DBClient$16.run(J2DBClient.java:1978)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(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)
Would that be possible to do also for a Servoy 7.4 smart client, to tell him to use an older Java version?
That way, users could update Java to the latest version and run Java 8u231 (issued Oct. 2019) still for the Servoy app.
Sure, it should be a fix that can be done easily without rocket science, as all users would have to do it.
i have it reproduced in a small example (and i know what todo to fix it)
but this is not a really small change and i need to look if we do that same structure on more places…
i will also create a bug report for oracle, because it seems to me they broke something that should just work.
we have the same problem with Servoy 7.4.x smartclient solutions.
It shows the login solution, but after login we get the error: Solution kan niet geladen worden: DirectManager
SEVERE: Throwable
java.rmi.RemoteException: Method is not Remote: interface com.servoy.j2db.persistence.IRepository::public abstract java.util.List com.servoy.j2db.persistence.IRepository.getActiveSolutionModuleMetaDatas(int) throws java.rmi.RemoteException,com.servoy.j2db.persistence.RepositoryException
at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(RemoteObjectInvocationHandler.java:232)
at java.rmi.server.RemoteObjectInvocationHandler.invoke(RemoteObjectInvocationHandler.java:180)
at com.sun.proxy.$Proxy18.getActiveSolutionModuleMetaDatas(Unknown Source)
at com.servoy.j2db.ClientRepository.getActiveSolutionModuleMetaDatas(ClientRepository.java:165)
at com.servoy.j2db.FlattenedSolution.setSolution(FlattenedSolution.java:599)
at com.servoy.j2db.ClientState.loadSolutionsAndModules(ClientState.java:1438)
at com.servoy.j2db.smart.J2DBClient.loadSolutionsAndModules(J2DBClient.java:1999)
at com.servoy.j2db.smart.J2DBClient$16.run(J2DBClient.java:1948)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
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.awt.EventQueue.dispatchEvent(EventQueue.java:728)
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)
Jan 15, 2020 3:46:08 PM com.servoy.j2db.util.Debug error
SEVERE: Solution kan niet geladen worden DirectManager
java.rmi.RemoteException: Method is not Remote: interface com.servoy.j2db.persistence.IRepository::public abstract java.util.List com.servoy.j2db.persistence.IRepository.getActiveSolutionModuleMetaDatas(int) throws java.rmi.RemoteException,com.servoy.j2db.persistence.RepositoryException
at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(RemoteObjectInvocationHandler.java:232)
at java.rmi.server.RemoteObjectInvocationHandler.invoke(RemoteObjectInvocationHandler.java:180)
at com.sun.proxy.$Proxy18.getActiveSolutionModuleMetaDatas(Unknown Source)
at com.servoy.j2db.ClientRepository.getActiveSolutionModuleMetaDatas(ClientRepository.java:165)
at com.servoy.j2db.FlattenedSolution.setSolution(FlattenedSolution.java:599)
at com.servoy.j2db.ClientState.loadSolutionsAndModules(ClientState.java:1438)
at com.servoy.j2db.smart.J2DBClient.loadSolutionsAndModules(J2DBClient.java:1999)
at com.servoy.j2db.smart.J2DBClient$16.run(J2DBClient.java:1948)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
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.awt.EventQueue.dispatchEvent(EventQueue.java:728)
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)
We are also facing the same issue with Java 8u241 and we are not sure what’s next step to fix this issue ?, do you think, using Open Webstart (https://openwebstart.com/ ) is the alternative solution for this ? and if so, is there any other implications of using OpenWebstart to run the smart client ?
this has nothing todo this time with webstart.
But it has something todo with RMI (so how smart client talks/communicates to the server)
besides that i don’t think stuff like openwebstart of icedteaweb will work just like that… That will only work if they expose the same classes to the system as java webstart does (seems unlikely, not 100% sure) if they don’t then that just means that servoy needs to be adjusted for that to be able to load and run the smartclient. So this could potentially only work for a coming release of servoy but there are no plans to look into this.
We have the bootstrapper to work around most webstart problems, and that can even run in a full stand alone mode (without webstart) but you need Servoy 8.3.3 or higher for that.
i am trying currently to make a 74 patch but can’t promise anything, because of all the old stuff that we need to support this that is already cleaned up. Our build server doesn’t built 7.4 anymore (for almost a year)
People really need to move forward.
no that is just internal id, its not public, i can’t even see that one anymore.
But don’t have your hopes up, this will very likely not be fixed by them, at least i am not going to assume that.
_
We will be making releases of 2019.12.1 and 2019.03.2_LTS for this.
2 jars of servoy 7.4.10/11 that should fix the problem for Servoy 7.4
You do need to resign it your self, because these are signed with another certificate then the original 7.4 files.