我根据https://www.eclipse.org/jetty/documentation/current/jetty-jspc-maven-plugin.html使用Jetty Jspc Maven插件9.3.11。由于
,已编译的JSP无法运行抛出java.lang.ClassNotFoundException: org.apache.jasper.runtime.JspSourceImports
JspSourceImports
是Tomcat 8引入的接口,因此在Tomcat 7上不可用.Jetty Jspc Maven插件不允许我配置要编译的Tomcat / JSP版本。
我认为插件的特定版本隐式附带。那么,问题是如何为Tomcat 7使用Jetty Jspc Maven插件?
答案 0 :(得分:1)
如果需要较旧的JSP支持,您可以使用旧的Jetty 8 jspc插件吗?
注意:Jetty 8现在是EOL(生命终结),它使用了Glassfish Jasper 2.2.2 JSP引擎(在Jetty 9中已被完全弃用并替换为Apache Jasper 8.5.4)
所以对于Jetty 8,你将会在:
请参阅:org.mortbay.jetty:jetty-jspc-maven-plugin:8.1.16.v20140903
答案 1 :(得分:0)
解决方案似乎与我上面的评论完全一样:
<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兼容。