2016-09-16 97 views
0

我使用Jetty Jspc Maven插件9.3.11根据https://www.eclipse.org/jetty/documentation/current/jetty-jspc-maven-plugin.html。所述编译的JSP无法运行由于如何使用Jetty Jspc Maven插件的Tomcat 7

抛出java.lang.ClassNotFoundException: org.apache.jasper.runtime.JspSourceImports

JspSourceImports是Tomcat上不可用的Tomcat 8并因此引入了一个接口7. Jetty Jspc Maven插件不允许我配置要编译的Tomcat/JSP版本。

我假设隐含地带有特定版本的插件。所以,问题是如何在Tomcat 7中使用Jetty Jspc Maven Plugin?

+0

交叉链接到邮件列表msg:http://dev.eclipse.org/mhonarc/lists/jetty-users/msg07303.html –

回答

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兼容。

1

如果需要更老的JSP支持,您可以使用旧的Jetty 8 jspc插件吗?

注:码头8是EOL(寿命结束)现在,它使用的Glassfish的碧玉2.2.2 JSP引擎(其已经完全弃用,在码头9与Apache碧玉8.5.4代替)

因此对于码头8,你会在:

  • JSP 2.2
  • JSTL 1.2

见:org.mortbay.jetty:jetty-jspc-maven-plugin:8.1.16.v20140903

+0

我可以使用'jspc'插件参数指向一个Tomcat 7' JspC.class'(即从一个Tomcat 7'jasper.jar')?我必须有办法告诉插件更喜欢外部提供的'JspC.class',我会为插件添加一个依赖到tomcat-jasper:7.0.70。 –