jstl 的 tomcat7-maven-plugin 行为 - 帮助使用 tomcat:run 目标
tomcat7-maven-plugin behavior with jstl - help using tomcat:run goal
当 运行ning
时有不同的行为
mvn clean tomcat7:run-war and mvn clean tomcat7:run
我正在尝试 运行 jstls
在 servlet 3 容器中(因此 tomcat 7 插件)并且出于某种原因,当我 运行 插件与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
,我没有。我怀疑它与类加载器有关,它在 运行 选项与 war 爆炸位置
中查看类路径的 Maven 存储库
target\[webappname]\WEB-INF\lib
使用 运行 而不是 运行-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
当 运行ning
时有不同的行为mvn clean tomcat7:run-war and mvn clean tomcat7:run
我正在尝试 运行 jstls
在 servlet 3 容器中(因此 tomcat 7 插件)并且出于某种原因,当我 运行 插件与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
,我没有。我怀疑它与类加载器有关,它在 运行 选项与 war 爆炸位置
target\[webappname]\WEB-INF\lib
使用 运行 而不是 运行-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