0

我正在从码头 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)
4

1 回答 1

0

您的战争中可能缺少该课程WEB-INF/lib

EDU/oswego/cs/dl/util/concurrent/ConcurrentHashMap

那是ConcurrentHashMap最终java.util.concurrent在 Java 1.5 中成为包的原始实现

刚刚检查了 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-concurrentjar并将它们添加到您的WEB-INF/lib目录中。

于 2014-10-08T18:13:19.457 回答