OpenFire Java Error

Hello,

I have recently upgraded our OpenFire software to 4.1.6 on a Windows Server 2012 R2, and now I am getting a Java error no matter which version I use. Here is the output from the browser when I try to open the Spark admin portal:

Exception: java.lang.NoSuchMethodError: org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(Ljava/lang/String;Ljava/lang/Class;Ljavax/servlet/jsp/PageContext;Lorg/apache/jasper/runtime/ProtectedFunctionMapper;)Ljava/lang/Object;

at org.jivesoftware.openfire.admin.login_jsp._jspService(login_jsp.java:234)

at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)

at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:812)

at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669)

at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:39)

at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)

at org.jivesoftware.util.LocaleFilter.doFilter(LocaleFilter.java:76)

at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)

at org.jivesoftware.util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:53)

at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)

at org.jivesoftware.admin.PluginFilter.doFilter(PluginFilter.java:226)

at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)

at org.jivesoftware.admin.AuthCheckFilter.doFilter(AuthCheckFilter.java:165)

at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)

at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)

at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)

at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)

at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)

at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)

at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)

at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)

at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)

at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)

at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215)

at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110)

at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)

at org.eclipse.jetty.server.Server.handle(Server.java:499)

at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311)

at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)

at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)

at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)

at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)

at java.lang.Thread.run(Unknown Source)

Any help would be greatly appreciated!

It might be caused by a bad upgrade, usually when Openfire was still running during the update. First, what version were you using before and what java was you using (32 or 64 bit java/openfire?). What version have you installed (with or without Java, 32 or 64 bit)? Go to your installation folder and check if all the files in the /lib folder have same modification dates. It should be 2017.10.05 18:05.

I found that the Application and Application extension files were last modified 2/22/2017, and the rest were 10/25/2017. Is there a way to perform a repair? Or will we need to install from scratch, recreate groups, and recreate users? Thank you very much!

I believe we had 32-bit OpenFire 3.9.3, with Java 7.71. Installed 32-bit OpenFire 4.1.6, and now Java 8.31 (as needed by another program running on this server).

Database should still be ok, so i don’t think you would need to recreate everything. But you should be doing backups for such occasions, so you would revert faster to a working state. Updating from a much older version can be tricky. Go to C:\Program files\Openfire\lib, enable details view and check Date modified column. As i said it should show 10/05/2017 for all lib files. Anyway, you can make sure Openfire is stopped (maybe you have a service running) and run the upgrade again.

Thank you for the guidance. I am going to run the upgrade again. I looked and here is the list:
Activation and jdic were last modified 5/6/2014
commons-el, jasper-compiler, jasper-runtime, servlet were last modified 9/21/2017

Actually, there are no such files at all in the current version. It must be left over files from older installation. Maybe instead of a upgrade you should try uninstall, and then remove everything except for /conf /embedded-db and /resources/security folders and then do clean install.

Reinstall may have worked. A co-worker took care of this for me after-hours. He said he also opened the OpenFire server and clicked on the “Launch Admin” button after the re-update. Not sure if it was the update or hitting the Launch Admin button, but it’s working.

Just don’t use that Launch Admin launcher anymore. 4.1.6 installs service. Use it instead.