java - mvn tomcat :run resolving jSTL taglibs dependencies

标签 java maven tomcat servlets jstl

我有一个简单的 maven-webapp 项目。执行 mvn tomcat:run 后,当我浏览项目时出现以下异常:

org.apache.jasper.JasperException: The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar files deployed with this application
    org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:51)
    org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:409)
    org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:116)
    org.apache.jasper.compiler.TagLibraryInfoImpl.generateTLDLocation(TagLibraryInfoImpl.java:315)
    org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java:148)
    org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:386)
    org.apache.jasper.compiler.Parser.parseDirective(Parser.java:449)
    org.apache.jasper.compiler.Parser.parseElements(Parser.java:1396)
    org.apache.jasper.compiler.Parser.parse(Parser.java:130)
    org.apache.jasper.compiler.ParserController.doParse(ParserController.java:255)
    org.apache.jasper.compiler.ParserController.parse(ParserController.java:103)
    org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:185)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:347)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:327)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:314)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:592)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

但如果我手动将 .war 文件复制到 tomcat webapps 目录,它工作正常。

这是我的 pom.xml 中的内容:

<dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.0.1</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>jstl</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
        <scope>provided</scope>
    </dependency>   
    <dependency>
       <groupId>javax.servlet.jsp</groupId>
       <artifactId>jsp-api</artifactId>
       <version>2.1</version>
       <scope>provided</scope>
    </dependency>
    <dependency>
       <groupId>org.apache.tomcat</groupId>
       <artifactId>el-api</artifactId>
       <version>6.0.26</version>
       <scope>provided</scope>
    </dependency>
    <dependency>
       <groupId>org.apache.tomcat</groupId>
       <artifactId>jasper-el</artifactId>
       <version>6.0.26</version>
        <scope>provided</scope>
    </dependency>  

有什么想法吗?

最佳答案

问题已解决,<scope>provided</scope>应该从 jstl 中删除

    <dependency>
        <groupId>jstl</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>          
    </dependency>

关于java - mvn tomcat :run resolving jSTL taglibs dependencies,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17614380/

相关文章:

java - 如果测试不显示代码部分 - spring mvc

java - 如何在我的绘图程序中实现对我的 "saving button"的保存功能?

java - wsdl 绑定(bind)未定义

java - 使用 Maven 创建可插入项目

debugging - 为什么tomcat以0.0.0.0 :8000 open?开头

java - 如何在JAVA中建立MySQL连接

java - 通过 Maven 获取斯坦福核心 NLP

java - Wildfly 快速入门 不可解析的导入 POM : Failure to find org. wildfly :wildfly-parent:pom:20. 0.0.Beta1-SNAPSHOT

tomcat - 当主机名设置为所有数值时,JMX 代理抛出 java.net.MalformedURLException

java - REST - HTTP 状态 405;不允许的方法;请求方法 'PUT'不支持错误