java - tomcat7-maven-plugin 行为与 jSTL - 帮助使用 tomcat :run goal

标签 java maven tomcat jstl

运行时有不同的行为

mvn clean tomcat7:run-war and mvn clean tomcat7:run

我正在尝试在 servlet 3 容器(因此使用 tomcat 7 插件)中运行 jSTLs,并且出于某种原因,当我使用 tomcat7:run 运行插件时命令我得到这个异常:

org.apache.jasper.JasperException: Unable to read TLD "META-INF/c.tld" from JAR file "file:/...../.m2/repository/jstl/jstl/1.2/jstl-1.2.jar": org.apache.jasper.JasperException: Failed to load or instantiate TagLibraryValidator class: org.apache.taglibs.standard.tlv.JstlCoreTLV
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:56)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:445)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:219)
org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java:182)
org.apache.jasper.compiler.JspDocumentParser.getTaglibInfo(JspDocumentParser.java:1287)
org.apache.jasper.compiler.JspDocumentParser.startPrefixMapping(JspDocumentParser.java:797)
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startNamespaceMapping(AbstractSAXParser.java:2164)
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:469)

而对于 tomcat7:run-war,我没有。我怀疑这与类加载器有关,类加载器在运行选项中查看类路径的 Maven 存储库,而不是 war explode 位置

target\[webappname]\WEB-INF\lib

使用 run over run-war 的主要原因是热部署对 tagx 或 JSTL 标记的更改。

以下是相关的 pom.xml 内容:

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.0.1</version>
        <scope>provided</scope>
    </dependency>

    <dependency>
        <groupId>javax.servlet.jsp</groupId>
        <artifactId>jsp-api</artifactId>
        <version>2.2</version>
    </dependency>

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

        <plugin>
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <version>2.2</version>
            <configuration>
                <path>/webapp</path>
            </configuration>
        </plugin>

最佳答案

<dependency>
    <groupId>javax.servlet.jsp</groupId>
    <artifactId>jsp-api</artifactId>
    <version>2.2</version>
    <scope>provided</scope>
</dependency>

是解决方案感谢 BalusC

关于java - tomcat7-maven-plugin 行为与 jSTL - 帮助使用 tomcat :run goal,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31661860/

相关文章:

java - 编写用于连接服务器的桌面应用程序

java - Lombok 导入和 @XXX 不适用于 Java 和 Eclipse

java - Hql 错误 : Class is not mapped, 无法解析符号

java - 使用 Maven EAR 打包的 GWT 应用程序运行 SuperDevMode

eclipse +tomcat 8.0 : 404 even after "use tomcat installation"

java - 从 Java 1.7 更新到 Java 1.8 以使用 Heroku 会导致任何问题吗

Java 多维数组排序

java - Spring Boot - 根据标志通过本地数据库或 Active Directory 进行身份验证

java - 对 AWS EC2/EBS 资源使用较长的 ID

java - Spring Boot 部署看不到 .class 文件