- In Openfire 5.0.0, the embedded webserver (Jetty) was upgraded to version 12. Many plugins that are developed
- against older versions of Openfire are known to be compatible, and will continue to work. That, however, is not
- the case for all plugins. This guide describes the most common issues.
-
-
- Note that many of the problems are caused by relatively simple package changes. Quite often, a class with the
- same (or very similar) name than the one that's no longer available can be found in another Java package.
-
-
- New in Jetty 12 is that the Servlet layer has been separated away from the Jetty Core layer. The Servlet layer
- has been moved to the new Environments concept introduced with Jetty 12. Openfire 5.0.0 is using the Jakarta EE8
- environment, which retains the javax.servlet packages known from earlier versions. The associated
- Jetty GroupId is org.eclipse.jetty.ee8, which is commonly used as a (part of) a Jetty java package
- name.
-
-
-
Known Error Details and Potential Solutions
-
- This section provides further details on the errors observed and offers suggestions for addressing them.
-
-
-
java.lang.VerifyError: Bad type on operand stack
-
-
+
Consider using org.eclipse.jetty.server.Handler.Wrapper (javadoc) to replace org.eclipse.jetty.server.handler.HandlerWrapper usage.
java.lang.NoClassDefFoundError: org/eclipse/jetty/webapp/WebAppContext
at org.igniterealtime.openfire.plugin.inverse.InversePlugin.initializePlugin(InversePlugin.java:63) ~[inverse-10.1.7.1.jar:?]
at org.jivesoftware.openfire.container.PluginManager.loadPlugin(PluginManager.java:640) [xmppserver-4.10.0-SNAPSHOT.jar:4.10.0-SNAPSHOT]
at org.jivesoftware.openfire.container.PluginMonitor$MonitorTask$4.call(PluginMonitor.java:380) [xmppserver-4.10.0-SNAPSHOT.jar:4.10.0-SNAPSHOT]
@@ -96,17 +191,16 @@
at java.net.URLClassLoader.findClass(URLClassLoader.java:445) ~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:592) ~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:525) ~[?:?]
- ... 8 more
-
-
-
Consider using the EE8 WebAppContext from org.eclipse.jetty.ee8.webapp.WebAppContext to replace org.eclipse.jetty.webapp.WebAppContext usage.
-
+ ... 8 more
+
+
Consider using the EE8 WebAppContext from org.eclipse.jetty.ee8.webapp.WebAppContext to replace org.eclipse.jetty.webapp.WebAppContext usage.
java.lang.NoClassDefFoundError: org/eclipse/jetty/security/ConstraintSecurityHandler
at java.lang.Class.getDeclaredConstructors0(Native Method) ~[?:?]
at java.lang.Class.privateGetDeclaredConstructors(Class.java:3373) ~[?:?]
at java.lang.Class.getConstructor0(Class.java:3578) ~[?:?]
@@ -122,17 +216,16 @@
java.lang.NoClassDefFoundError: org/eclipse/jetty/security/ConstraintSecurit
at java.net.URLClassLoader.findClass(URLClassLoader.java:445) ~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:592) ~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:525) ~[?:?]
- ... 11 more
-
-
-
Consider using the EE8 ConstraintSecurityHandler from org.eclipse.jetty.ee8.security.ConstraintSecurityHandler to replace org.eclipse.jetty.security.ConstraintSecurityHandler.
-
+ ... 11 more
+
+
Consider using the EE8 ConstraintSecurityHandler from org.eclipse.jetty.ee8.security.ConstraintSecurityHandler to replace org.eclipse.jetty.security.ConstraintSecurityHandler.
java.lang.NoClassDefFoundError: org/eclipse/jetty/websocket/server/JettyWebSocketCreator
at uk.ifsoft.openfire.plugins.pade.PadePlugin.initializePlugin(PadePlugin.java:117) ~[pade-1.8.3.jar:?]
at org.jivesoftware.openfire.container.PluginManager.loadPlugin(PluginManager.java:640) [xmppserver-4.10.0-SNAPSHOT.jar:4.10.0-SNAPSHOT]
at org.jivesoftware.openfire.container.PluginMonitor$MonitorTask$4.call(PluginMonitor.java:380) [xmppserver-4.10.0-SNAPSHOT.jar:4.10.0-SNAPSHOT]
@@ -145,10 +238,10 @@
java.lang.NoClassDefFoundError: org/eclipse/jetty/websocket/server/JettyWebS
at java.net.URLClassLoader.findClass(URLClassLoader.java:445) ~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:592) ~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:525) ~[?:?]
- ... 8 more
-
-
-
Consider using the EE8 JettyWebSocketServlet from org.eclipse.jetty.ee8.websocket.server.JettyWebSocketServlet to replace org.eclipse.jetty.websocket.server.JettyWebSocketCreator.
+ ... 8 more
+
+
Consider using the EE8 JettyWebSocketServlet from org.eclipse.jetty.ee8.websocket.server.JettyWebSocketServlet to replace org.eclipse.jetty.websocket.server.JettyWebSocketCreator.