解决访问Jetty页面中JSP时的java.err.nojdk

       今天在尝试使用jetty7+cometd+spring的archetype建立工程时,无法按照reference预期的出现正常的访问结果,出现了org.apache.jasper.JasperException: java.err.nojdk。

org.apache.jasper.JasperException: java.err.nojdk
	at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:89)
	at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:375)
	at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:116)
	at org.apache.jasper.compiler.Jsr199JavaCompiler.compile(Jsr199JavaCompiler.java:198)
	at org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:364)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:433)
	at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:608)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:476)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:366)

       这个看起来应该是在解析JSP的时候遇到了没有JDK的问题,上网查了查,大多数人只是说不要只用jre,要用jdk,蛋碎,似乎是个bug,不过还好可以通过下面的参数解决。、

        如果使用的是自己的jetty服务器,而不是maven的jetty plugin,就在Jetty下的start.ini中增加配置

org.apache.jasper.compiler.disablejsr199=true 

        如果使用的是maven的plugin,就修改jetty的plugin configuration如下

<plugin>
    <groupId>org.mortbay.jetty</groupId>
    <artifactId>jetty-maven-plugin</artifactId>
    <version>7.6.8.v20121106</version>
    <configuration>
     <scanIntervalSeconds>10</scanIntervalSeconds>
     <systemProperties>
      <systemProperty>
       <name>org.apache.jasper.compiler.disablejsr199</name>
       <value>true</value>
      </systemProperty>
     </systemProperties>
     <webAppConfig>
      <contextPath>/vem</contextPath>
     </webAppConfig>
    </configuration>
</plugin>

猜你喜欢

转载自dugu108.iteye.com/blog/1773629