运行QuickStartServer,启动成功后,访问页面提示java.err.nojdk的错误。
org.apache.jasper.JasperException: java.err.nojdk
at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:89) ~[org.apache.jasper.glassfish-2.1.0.v201110031002.jar:na]
at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:375) ~[org.apache.jasper.glassfish-2.1.0.v201110031002.jar:na]
at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:116) ~[org.apache.jasper.glassfish-2.1.0.v201110031002.jar:na]
at org.apache.jasper.compiler.Jsr199JavaCompiler.compile(Jsr199JavaCompiler.java:198) ~[org.apache.jasper.glassfish-2.1.0.v201110031002.jar:na]
at org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:364) ~[org.apache.jasper.glassfish-2.1.0.v201110031002.jar:na]
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:433) ~[org.apache.jasper.glassfish-2.1.0.v201110031002.jar:na]
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:608) ~[org.apache.jasper.glassfish-2.1.0.v201110031002.jar:na]
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374) ~[org.apache.jasper.glassfish-2.1.0.v201110031002.jar:na]
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:476) ~[org.apache.jasper.glassfish-2.1.0.v201110031002.jar:na]
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:366) ~[org.apache.jasper.glassfish-2.1.0.v201110031002.jar:na]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:770) ~[javax.servlet-api-3.0.1.jar:3.0.1]
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:652) ~[jetty-webapp-7.6.15.v20140411.jar:7.6.
主要原因是因为jetty运行依赖于jdk而不是jre。
然而发现我的eclipse设置本身就已经都是JDK的,但是还是出这个问题。
Installed JREs 里面设置的就是JDK,
Compiler设置的Compiler compliance level:1.8
最后发现只需要修改下QuickStartServer类的运行JRE即可。修改如下: