Servoy 2025.9.0

We are pleased to announce the availability of Servoy 2025.09.0 (release number 4102)

This version is available through the download site

See whats new for the global changes and the case list

An installation (coming from the normal installer or from a platform specific archive) is shipping with a Java VM (Java 21.0.8)

So for the platform specific archives you don’t need to install or have java on your system.

This release can be updated by using the “latest” url: http://download.servoy.com/developer/latest/ (when you come from 2019.03 or higher)
This release is build on Eclipse 2025.06 (4.36)

This is a release in our quarterly release cycle
if you want to stay on the LTS path you need to stick to 2025.03.x or the 2024.03.x LTS and enabled only the lts update site.

Many webpackages have new releases for the 2025.09 most of them are mandatory to get because of some internal changes and a major angular upgrade.

If coming from a much older release like 2022.03 then you first have to updated to 2023.03 and then go to 2024.12
This is because of an Eclipse update bug that prevents these updates.

1 Like

Congratulations on the new Release…

However, for the 2nd time, when updating a previous (2025.6) release on my Mac (Apple Silicon, latest macOS), the current active solution is gone (but still visible under All Solutions), the normal npm rebuild does not happen and when I try to activate my solution, it seems to activate, but isn’t there & I can’t select ‘Activate Solution’ on it again in All Solutions…

1st time this happened I had to just install a fresh copy of latest version & then switch to my previous workspace, but this isn’t great (& the first time this has happened with any new release for me)

Any ideas??

[I hope/assume you do have Macs there to do testing/QA on??]

Thanks

Rafi

that is not something we have seen and we use macs here for testing but also actually developing on it.
So not sure what happens for you, want does the various log files say?
so servoy_log and/ore the .log in the workspace/.metadata dir of eclipse itself?

(As I needed to do some work with the 2nd Servoy, I installed fresh copy and then switched it to my solution workspace, so the attached eclipse log file will have stuff from when it did work ok…)

Servoy Log

2025-10-15 11:42:51,677 WARN [ServoyServerScheduler-1-thread-1] com.servoy.j2db.util.Debug - Native startup  hook called in runnable : [/Applications/Servoy_SHE.app/Contents/Eclipse/../application_server//postgres_db/bin/pg_ctl, start, -D, database, -l, postgres_db/postgres_log.txt] env null [ ]
2025-10-15 11:42:52,561 ERROR [ServoyServerScheduler-1-thread-2] com.servoy.j2db.util.Debug - Error occured retrieving server plugins [ ]
java.util.ServiceConfigurationError: com.servoy.j2db.plugins.IPlugin: com.servoy.extensions.plugins.file.FileServerPlugin Unable to get public no-arg constructor
	at java.base/java.util.ServiceLoader.fail(Unknown Source)
	at java.base/java.util.ServiceLoader.getConstructor(Unknown Source)
	at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNextService(Unknown Source)
	at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNext(Unknown Source)
	at java.base/java.util.ServiceLoader$2.hasNext(Unknown Source)
	at java.base/java.util.ServiceLoader$3.hasNext(Unknown Source)
	at com.servoy.j2db.plugins.PluginManager.getExtensionsForClass(PluginManager.java:200)
	at com.servoy.j2db.plugins.PluginManager.loadServerPluginDefs(PluginManager.java:300)
	at com.servoy.j2db.plugins.PluginManager.initServerPlugins(PluginManager.java:329)
	at com.servoy.j2db.server.main.ApplicationServer.Za(ApplicationServer.java:153)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NoClassDefFoundError: javax/servlet/http/HttpServlet
	at java.base/java.lang.Class.getDeclaredConstructors0(Native Method)
	at java.base/java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
	at java.base/java.lang.Class.getConstructor0(Unknown Source)
	at java.base/java.lang.Class.getConstructor(Unknown Source)
	at java.base/java.util.ServiceLoader$1.run(Unknown Source)
	at java.base/java.util.ServiceLoader$1.run(Unknown Source)
	at java.base/java.security.AccessController.doPrivileged(Unknown Source)
	... 12 more
Caused by: java.lang.ClassNotFoundException: javax.servlet.http.HttpServlet
	at java.base/java.net.URLClassLoader.findClass(Unknown Source)
	at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
	at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
	... 19 more
2025-10-15 12:35:32,210 WARN [ServoyServerScheduler-1-thread-1] com.servoy.j2db.util.Debug - Native startup  hook called in runnable : [/Applications/Servoy_SHE.app/Contents/Eclipse/../application_server//postgres_db/bin/pg_ctl, start, -D, database, -l, postgres_db/postgres_log.txt] env null [ ]
2025-10-15 12:35:33,065 ERROR [ServoyServerScheduler-1-thread-2] com.servoy.j2db.util.Debug - Error occured retrieving server plugins [ ]
java.util.ServiceConfigurationError: com.servoy.j2db.plugins.IPlugin: com.servoy.extensions.plugins.file.FileServerPlugin Unable to get public no-arg constructor
	at java.base/java.util.ServiceLoader.fail(Unknown Source)
	at java.base/java.util.ServiceLoader.getConstructor(Unknown Source)
	at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNextService(Unknown Source)
	at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNext(Unknown Source)
	at java.base/java.util.ServiceLoader$2.hasNext(Unknown Source)
	at java.base/java.util.ServiceLoader$3.hasNext(Unknown Source)
	at com.servoy.j2db.plugins.PluginManager.getExtensionsForClass(PluginManager.java:200)
	at com.servoy.j2db.plugins.PluginManager.loadServerPluginDefs(PluginManager.java:300)
	at com.servoy.j2db.plugins.PluginManager.initServerPlugins(PluginManager.java:329)
	at com.servoy.j2db.server.main.ApplicationServer.Za(ApplicationServer.java:153)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NoClassDefFoundError: javax/servlet/http/HttpServlet
	at java.base/java.lang.Class.getDeclaredConstructors0(Native Method)
	at java.base/java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
	at java.base/java.lang.Class.getConstructor0(Unknown Source)
	at java.base/java.lang.Class.getConstructor(Unknown Source)
	at java.base/java.util.ServiceLoader$1.run(Unknown Source)
	at java.base/java.util.ServiceLoader$1.run(Unknown Source)
	at java.base/java.security.AccessController.doPrivileged(Unknown Source)
	... 12 more
Caused by: java.lang.ClassNotFoundException: javax.servlet.http.HttpServlet
	at java.base/java.net.URLClassLoader.findClass(Unknown Source)
	at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
	at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
	... 19 more

Eclipse Log (too big to paste)



Hope they help (& glad you are using & testing with Macs :wink: )

(Will have to work out how to upload a ZIP file of Eclipse log…)

Looking online, it seems Servoy/you have to enable non image uploads so I can upload the log file…

https://meta.discourse.org/t/understanding-uploads-images-and-attachments/275735?tl=en

but what you need todo there is also do the second update for the application_server part (of the developer)

and then restart, this needs to be updated because a lot of stuff will not be able to load.
So your exceptions are logical the first time you start it but you need to quickly let it update also the second part and then restart.

I did do that with my 1st install, it still didn’t work…

With previous releases/updates, after downloading the update & installing it and it asks to restart, on that restart all the ‘npm’ stuff happens & my solutions are still active. I have learnt (the hard way) to ignore the request to update the application server stuff until all packages have been updated & built & then on a subsequent restart, I let it update the application server. (if you allowed that to happen in the past before all npm stuff was done, things wouldn’t work)

Has this changed now?

you can still wait for it,
but we did improve it that we do see the next time that it wasn’t really fully build (but this you could always fix by doing a clean build from the context menu of the webpackages)

But the errors you see needs a update of the full application server because of all the jakarta/tomcat changes all old stuff like old plugins or even old config in the application_server/server must be updated and/or replaced.