我正在从jetty 8.1.5迁移到9.2.2。我们的应用程序使用Spring,我们支持一些旧的struts控制器。
我们使用struts 1.3.5。当我启动服务器时,我不断收到以下异常。
这是否意味着,我还需要迁移struts?还有其他解决方案可以解决这个问题吗?
我试过java 7和8.同样的事情发生了。请建议。
javax.servlet.UnavailableException: EDU/oswego/cs/dl/util/concurrent/ConcurrentHashMap
at org.apache.struts.action.ActionServlet.init(ActionServlet.java:399)
at javax.servlet.GenericServlet.init(GenericServlet.java:244)
at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:600)
at org.eclipse.jetty.servlet.ServletHolder.getServlet(ServletHolder.java:462)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:742)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1667)
at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:172)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1650)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:583)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:553)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1125)
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:1059)
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:485)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:290)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:248)
at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:606)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:535)
at java.lang.Thread.run(Thread.java:722)
答案 0 :(得分:0)
你的战争WEB-INF/lib
EDU/oswego/cs/dl/util/concurrent/ConcurrentHashMap
这是Java 1.5中最终成为ConcurrentHashMap
包的java.util.concurrent
的原始实现
刚查过8.1.5.v20120716
[jetty-distribution-8.1.5.v20120716]$ find lib -name "*.jar" -exec jar -tvf {} \; |\
grep -i edu.oswego
Jetty不附带这些类(也不会在WebAppClassloader
中有例外,允许从服务器类加载器中使用它们)
您的配置中的其他内容必须为您添加它们。
查找backport-util-concurrent
jars并将其添加到WEB-INF/lib
目录。