I have recently installed openfire 3.7.0 from the debian package, copied over my coherence-work.jar, coherence.jar, and tangasol.jar files to /usr/share/openfire/lib; installed the clustering.jar plugin using the plugin management system, and I’m receiving HTTP500 problems on the user-summary page:
HTTP ERROR 500 Problem accessing /user-summary.jsp. Reason: org.jivesoftware.util.cache.DefaultCache cannot be cast to com.jivesoftware.util.cache.ClusteredCache Caused by: java.lang.ClassCastException: org.jivesoftware.util.cache.DefaultCache cannot be cast to com.jivesoftware.util.cache.ClusteredCache at com.jivesoftware.util.cache.CoherenceClusteredCacheFactory.getLock(CoherenceClusteredCacheFactory.java:351) at org.jivesoftware.util.cache.CacheFactory.getLock(CacheFactory.java:378) at org.jivesoftware.openfire.spi.PresenceManagerImpl.loadOfflinePresence(PresenceManagerImpl.java:551) at org.jivesoftware.openfire.spi.PresenceManagerImpl.getLastActivity(PresenceManagerImpl.java:177) at org.jivesoftware.openfire.admin.user_002dsummary_jsp._jspService(user_002dsummary_jsp.java:369) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:530) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1216) at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118) at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1187) at org.jivesoftware.util.LocaleFilter.doFilter(LocaleFilter.java:74) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1187) at org.jivesoftware.util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:50) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1187) at org.jivesoftware.admin.PluginFilter.doFilter(PluginFilter.java:78) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1187) at org.jivesoftware.admin.AuthCheckFilter.doFilter(AuthCheckFilter.java:164) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1187) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:425) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:494) at org.eclipse.jetty.server.session.SessionHandler.handle(SessionHandler.java:182) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:933) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:362) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:867) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117) at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:245) at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:113) at org.eclipse.jetty.server.Server.handle(Server.java:334) at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:559) at org.eclipse.jetty.server.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:992) at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:541) at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:203) at org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:406) at org.eclipse.jetty.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:462) at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:436) at java.lang.Thread.run(Thread.java:662)
error log contents:
2011.03.02 16:14:58 No scheme for cache: "PEPServiceManager"
java.lang.IllegalArgumentException: No scheme for cache: "PEPServiceManager"
at com.tangosol.net.DefaultConfigurableCacheFactory.findSchemeMapping(DefaultConfigurableCacheFactory.java:476)
at com.tangosol.net.DefaultConfigurableCacheFactory.ensureCache(DefaultConfigurableCacheFactory.java:270)
at com.tangosol.net.CacheFactory.getCache(CacheFactory.java:689)
at com.tangosol.net.CacheFactory.getCache(CacheFactory.java:667)
at com.jivesoftware.util.cache.ClusteredCache.<init>(ClusteredCache.java:58)
at com.jivesoftware.util.cache.CoherenceClusteredCacheFactory.createCache(CoherenceClusteredCacheFactory.java:177)
at org.jivesoftware.util.cache.CacheFactory.joinedCluster(CacheFactory.java:674)
at org.jivesoftware.openfire.cluster.ClusterManager$1.run(ClusterManager.java:61)
warn log:
2011.03.02 16:22:51 --- Marker inserted by admin at Mar 2, 2011 4:22:51 PM ---
2011.03.02 16:22:59 Autocreating jiveID row for type '25'
2011.03.02 16:23:06 /user-summary.jsp
java.lang.ClassCastException: org.jivesoftware.util.cache.DefaultCache cannot be cast to com.jivesoftware.util.cache.ClusteredCache
at com.jivesoftware.util.cache.CoherenceClusteredCacheFactory.getLock(CoherenceClusteredCacheFactory.java:351)
at org.jivesoftware.util.cache.CacheFactory.getLock(CacheFactory.java:378)
at org.jivesoftware.openfire.spi.PresenceManagerImpl.loadOfflinePresence(PresenceManagerImpl.java:551)
at org.jivesoftware.openfire.spi.PresenceManagerImpl.getLastActivity(PresenceManagerImpl.java:177)
at org.jivesoftware.openfire.admin.user_002dsummary_jsp._jspService(user_002dsummary_jsp.java:369)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:530)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1216)
at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)
at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1187)
at org.jivesoftware.util.LocaleFilter.doFilter(LocaleFilter.java:74)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1187)
at org.jivesoftware.util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:50)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1187)
at org.jivesoftware.admin.PluginFilter.doFilter(PluginFilter.java:78)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1187)
at org.jivesoftware.admin.AuthCheckFilter.doFilter(AuthCheckFilter.java:164)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1187)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:425)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:494)
at org.eclipse.jetty.server.session.SessionHandler.handle(SessionHandler.java:182)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:933)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:362)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:867)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:245)
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:113)
at org.eclipse.jetty.server.Server.handle(Server.java:334)
at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:559)
at org.eclipse.jetty.server.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:992)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:541)
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:203)
at org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:406)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:462)
at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:436)
at java.lang.Thread.run(Thread.java:662)
debug log info:
2011.03.02 16:23:03 --- Marker inserted by admin at Mar 2, 2011 4:23:03 PM ---
2011.03.02 16:23:03 JettyLog: servlet holder=
2011.03.02 16:23:03 JettyLog: chain=
2011.03.02 16:23:03 JettyLog: servlet holder=
2011.03.02 16:23:03 JettyLog: chain=
2011.03.02 16:23:03 JettyLog: servlet holder=
2011.03.02 16:23:03 JettyLog: chain=
2011.03.02 16:23:06 JettyLog: servlet holder=
2011.03.02 16:23:06 JettyLog: chain=
2011.03.02 16:23:06 000024 (01/05/00) - Connection #4 tested: OK
2011.03.02 16:23:06 000025 (01/05/00) - Connection #4 tested: OK
2011.03.02 16:23:06 000025 (01/05/00) - Connection #5 tested: OK
2011.03.02 16:23:06 Results: 1
2011.03.02 16:23:06 getUsers results: admin,.
2011.03.02 16:23:06 000026 (01/05/00) - Connection #5 tested: OK
2011.03.02 16:23:06 000026 (01/05/00) - Connection #2 tested: OK
2011.03.02 16:23:06 000027 (01/05/00) - Connection #2 tested: OK
2011.03.02 16:23:10 JettyLog: servlet holder=
2011.03.02 16:23:10 JettyLog: chain=
I have this working fine on openfire 3.6.4 and remain on that version for the time being, and will continue testing the new version with some help.