我按照https://www.eclipse.org/jetty/documentation/current/jetty-jspc-maven-plugin.html使用Jetty插件9.3.11。编译后的JSP无法运行,原因是
java.lang.ClassNotFoundException: org.apache.jasper.runtime.JspSourceImports
JspSourceImports
是Tomcat 8引入的接口,因此在Tomcat 7上不可用。Jetty插件不允许我配置要编译哪个Tomcat/JSP版本。
我假定插件的特定版本隐式地附带了这个插件。那么,问题是如何为Tomcat 7使用插件?
发布于 2016-09-19 11:30:51
解决办法似乎与我在上面的评论中所预期的完全一样:
<plugin>
<!-- https://www.eclipse.org/jetty/documentation/9.3.x/jetty-jspc-maven-plugin.html -->
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-jspc-maven-plugin</artifactId>
<version>${jetty-jspc-plugin.version}</version>
<dependencies>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-jasper</artifactId>
<version>${tomcat.version}</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>jspc</id>
<goals>
<goal>jspc</goal>
</goals>
</execution>
</executions>
</plugin>
${tomcat.version}
是来自7.x分支的一些版本。没有必要让它与运行时版本完全匹配,只需要与API兼容。
发布于 2016-09-16 13:50:13
如果需要更老的JSP支持,那么可以使用旧的Jetty8jspc插件吗?
注意: Jetty 8现在是EOL (End of Life),它使用了Glassfish Jasper 2.2.2 JSP引擎( Jetty 9中的Apache Jasper 8.5.4已经完全不再推荐它了)
所以在8号高速公路上,你会在:
请参阅:org.mortbay.jetty:jetty-jspc-maven-plugin:8.1.16.v20140903
https://stackoverflow.com/questions/39526064
复制相似问题