Hi,
We verify that with the latest version of Openfire 5.0.0 and 5.0.1 the resApi plugin is not working properly.
Openfire version(5.0.0 and 5.0.1)
restApi version 1.11.0
OS RHEL9
Java 21
After uploading the plugin and going to the settings we see this stack trace:
on the logs we saw this:
2025.07.01 13:39:37 INFO [PluginMonitorTask-2]: org.jivesoftware.openfire.container.PluginManager - Successfully unloaded plugin 'restapi'.
2025.07.01 13:40:04 WARN [PluginMonitorExec-2]: org.jivesoftware.openfire.container.PluginServlet - Exception attempting to load servlet 'JerseyWrapper' (org.glassfish.jersey.servlet.Servle
tContainer) of plugin 'restapi'
org.glassfish.hk2.api.MultiException: A MultiException has 2 exceptions. They are:
1. java.lang.NoSuchMethodError: 'org.jivesoftware.openfire.container.Plugin org.jivesoftware.openfire.container.PluginManager.getPlugin(java.lang.String)'
2. java.lang.IllegalStateException: Unable to perform operation: create on org.jivesoftware.openfire.plugin.rest.AuthFilter
at org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java:368) ~[?:?]
at org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:463) ~[?:?]
at org.jvnet.hk2.internal.SingletonContext$1.compute(SingletonContext.java:59) ~[?:?]
at org.jvnet.hk2.internal.SingletonContext$1.compute(SingletonContext.java:47) ~[?:?]
at org.glassfish.hk2.utilities.cache.Cache$OriginThreadAwareFuture$1.call(Cache.java:74) ~[?:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:317) ~[?:?]
at org.glassfish.hk2.utilities.cache.Cache$OriginThreadAwareFuture.run(Cache.java:131) ~[?:?]
at org.glassfish.hk2.utilities.cache.Cache.compute(Cache.java:176) ~[?:?]
at org.jvnet.hk2.internal.SingletonContext.findOrCreate(SingletonContext.java:98) ~[?:?]
at org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2102) ~[?:?]
at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:93) ~[?:?]
at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:67) ~[?:?]
at org.glassfish.jersey.inject.hk2.AbstractHk2InjectionManager.lambda$getAllServiceHolders$0(AbstractHk2InjectionManager.java:136) ~[?:?]
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) ~[?:?]
at java.util.LinkedList$LLSpliterator.forEachRemaining(LinkedList.java:1249) ~[?:?]
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[?:?]
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[?:?]
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921) ~[?:?]
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]
at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682) ~[?:?]
at org.glassfish.jersey.inject.hk2.AbstractHk2InjectionManager.getAllServiceHolders(AbstractHk2InjectionManager.java:140) ~[?:?]
at org.glassfish.jersey.inject.hk2.ImmediateHk2InjectionManager.getAllServiceHolders(ImmediateHk2InjectionManager.java:30) ~[?:?]
at org.glassfish.jersey.internal.inject.Providers.getServiceHolders(Providers.java:299) ~[?:?]
at org.glassfish.jersey.internal.inject.Providers.getAllRankedProviders(Providers.java:182) ~[?:?]
at org.glassfish.jersey.server.ProcessingProvidersConfigurator.postInit(ProcessingProvidersConfigurator.java:95) ~[?:?]
at org.glassfish.jersey.server.ApplicationHandler.lambda$initialize$2(ApplicationHandler.java:353) ~[?:?]
at java.util.Arrays$ArrayList.forEach(Arrays.java:4305) ~[?:?]
at org.glassfish.jersey.server.ApplicationHandler.initialize(ApplicationHandler.java:353) ~[?:?]
at org.glassfish.jersey.server.ApplicationHandler.lambda$initialize$1(ApplicationHandler.java:297) ~[?:?]
at org.glassfish.jersey.internal.Errors.process(Errors.java:292) ~[?:?]
at org.glassfish.jersey.internal.Errors.process(Errors.java:274) ~[?:?]
at org.glassfish.jersey.internal.Errors.processWithException(Errors.java:232) ~[?:?]
at org.glassfish.jersey.server.ApplicationHandler.initialize(ApplicationHandler.java:296) ~[?:?]
at org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:261) ~[?:?]
at org.glassfish.jersey.servlet.WebComponent.<init>(WebComponent.java:311) ~[?:?]
at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:154) ~[?:?]
at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:339) ~[?:?]
at javax.servlet.GenericServlet.init(GenericServlet.java:180) ~[jetty-servlet-api-4.0.6.jar:?]
at org.jivesoftware.openfire.container.PluginServlet.registerServlets(PluginServlet.java:193) ~[xmppserver-5.0.1.jar:5.0.1]
at org.jivesoftware.openfire.container.PluginManager.loadPlugin(PluginManager.java:621) ~[xmppserver-5.0.1.jar:5.0.1]
at org.jivesoftware.openfire.container.PluginMonitor$MonitorTask.lambda$run$3(PluginMonitor.java:354) ~[xmppserver-5.0.1.jar:5.0.1]
at java.util.concurrent.FutureTask.run(FutureTask.java:317) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[?:?]
at java.lang.Thread.run(Thread.java:1583) [?:?]
Caused by: java.lang.NoSuchMethodError: 'org.jivesoftware.openfire.container.Plugin org.jivesoftware.openfire.container.PluginManager.getPlugin(java.lang.String)'
at org.jivesoftware.openfire.plugin.rest.AuthFilter.<init>(AuthFilter.java:56) ~[?:?]
at jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62) ~[?:?]
at java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502) ~[?:?]
at java.lang.reflect.Constructor.newInstance(Constructor.java:486) ~[?:?]
at org.glassfish.hk2.utilities.reflection.ReflectionHelper.makeMe(ReflectionHelper.java:1356) ~[?:?]
at org.jvnet.hk2.internal.ClazzCreator.createMe(ClazzCreator.java:248) ~[?:?]
at org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java:342) ~[?:?]
... 44 more
We verify that the method getPlugin that was already deprecated was removed on version 5 of openfire. So getPluginByName should be used instead!
We try to build locally the plugin with that change and increasing the openfire version dependency to 5.0.0 and we notice that after we increase the dependency the jsps are not created.
So we think it could be that there is another problem with the dependency of openfire 5.0.0.
Regards