将 jdom 添加到 servlet 后出现 NoClassDefFound 错误

NoClassDefFound Error after adding jdom to servlet

我已将 jdom jar 添加到我的 Servlet (BuildPath > Configure Buildpath > Add External Jar)。由于我的 Servlet 不再工作,我收到以下错误:

java.lang.NoClassDefFoundError: org/apache/jsp/selection_jsp (wrong name: org/apache/jsp/Selection_jsp)
    java.lang.ClassLoader.defineClass1(Native Method)
    java.lang.ClassLoader.defineClass(Unknown Source)
    java.security.SecureClassLoader.defineClass(Unknown Source)
    java.net.URLClassLoader.defineClass(Unknown Source)
    java.net.URLClassLoader.access0(Unknown Source)
    java.net.URLClassLoader.run(Unknown Source)
    java.net.URLClassLoader.run(Unknown Source)
    java.security.AccessController.doPrivileged(Native Method)
    java.net.URLClassLoader.findClass(Unknown Source)
    org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:131)
    org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:62)
    org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:172)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

解决方案:

将 jdom jar 添加到 WEB-INF/lib 并从构建路径中删除了 jar。

解决方案非常简单:

  • 重新部署应用程序。

如果不行,

  • 清除AS缓存;
  • 重启AS。

这应该是(某种程度上)缓存问题。