java.lang.ClassNotFoundException:javax.servlet.descriptor.JspConfigDescriptor

时间:2013-09-03 09:23:24

标签: jsf

我正在尝试构建一个JSF应用程序,但是我遇到了这个错误:

java.lang.ClassNotFoundException: javax.servlet.descriptor.JspConfigDescriptor
java.lang.NoClassDefFoundError: javax/servlet/descriptor/JspConfigDescriptor

这是如何引起的?如何解决?

1 个答案:

答案 0 :(得分:1)

  

java.lang.ClassNotFoundException:javax.servlet.descriptor.JspConfigDescriptor

这个类在Servlet 3.0中是introduced。因此,此错误意味着您的webapp的运行时类路径中充斥着来自完全不同的servletcontainer make / version的任意下载的JAR文件,该文件不支持Servlet 3.0,而webapp又被部署到Servlet 3.0兼容容器。这只会导致所有颜色的类加载冲突,因为运行时类路径中存在多个不同的版本化类。

与servletcontainer特定的JAR文件一起乱丢/WEB-INF/lib文件夹反过来是一个常见的启动程序错误,它试图“修复”他们在IDE中遇到的编译错误。这应该以不同的方式解决。另请参阅How do I import the javax.servlet API in my Eclipse project?

简而言之:永远不要在/WEB-INF/lib中随意下载特定于servlet容器的JAR。而是配置IDE项目以将所需的目标servletcontainer设置为“Target Runtime”。