为了账号安全,请及时绑定邮箱和手机立即绑定

错误:未加载Servlet Jar…令人反感的类:javax / servlet

错误:未加载Servlet Jar…令人反感的类:javax / servlet

冉冉说 2019-11-02 10:03:14
我收到以下错误:INFO:validateJarFile(C:\ dev \ server \ tomcat6 \ webapps Sempedia \ WEB-INF \ lib \ servlet-api.jar)-未加载jar。参见Servlet Spec 2.3,第9.7.2节。令人反感的类:javax / servlet / Servlet.class那里的现有资源说,这是由于与servlet.jar冲突,在本例中为servlet-api.jar文件。我已经从/ webapps文件夹中删除了所有其他项目,我已经获取了tomcat6 / lib目录中的servlet-api.jar文件,并将其添加到了项目构建路径中,所以我看不到那里仍然是一个冲突。当我尝试运行该应用程序时,得到以下堆栈跟踪。org.apache.jasper.JasperException:无法为JSP编译类:在生成的java文件中的第22行发生错误:对于类型JspFactory,未定义方法getJspApplicationContext(ServletContext)。堆栈跟踪:org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler。 java:439)org.apache.jasper.compiler.Compiler.compile(Compiler.java:334)org.apache.jasper.compiler.Compiler.compile(Compiler.java:312)org.apache.jasper.compiler.Compiler。 compile(Compiler.java:299)org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:586)org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)org.apache.jasper.servlet。 JspServlet.serviceJspFile(JspServlet.java:342)org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
查看完整描述

3 回答

?
HUH函数

TA贡献1836条经验 获得超4个赞

就像其他答案所说的那样,这是因为您的WAR包含Servlet API类,但不应这样做。


如果使用Maven构建项目,则需要告诉Maven在编译和测试时使Servlet API可用,但不要将其包含在WAR中。正如有关依赖范围的Maven文档所述,您应该provided对Servlet API 使用范围:


    <dependency>

        <groupId>javax.servlet</groupId>

        <artifactId>servlet-api</artifactId>

        <version>2.5</version>

        <scope>provided</scope>

    </dependency>

如果您的某些依赖关系将Servlet API作为编译依赖关系引入,则可能还必须显式排除Servlet API作为传递依赖关系:


    <dependency>

        <groupId>com.example</groupId>

        <artifactId>frob-driver-core</artifactId>

        <version>1.0.1</version>

        <exclusions>

            <exclusion>

                <artifactId>servlet-api</artifactId>

                <groupId>javax.servlet</groupId>

            </exclusion>

        </exclusions>

    </dependency>


查看完整回答
反对 回复 2019-11-02
  • 3 回答
  • 0 关注
  • 656 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信