將基於Jetty 6的應用程序遷移到9.2(嵌入式)。Jetty 9(emedded)運行時JSP編譯
我無法弄清楚JSP在運行時是如何編譯的(無需預編譯)。當我使用JDK時,我的應用程序運行正常。但它不能成爲JSP時JRE運行時,我得到的錯誤是:
org.apache.jasper.JasperException: PWC6345: There is an error in invoking javac. A full JDK (not just JRE) is required
at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:92)
at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:378)
at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:119)
at org.apache.jasper.compiler.Jsr199JavaCompiler.compile(Jsr199JavaCompiler.java:208)
at org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:384)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:453)
這清楚地表明,Jetty是尋找Java編譯器,顯然是不存在的JRE。展望碼頭9.2文檔,我讀了:
By default, the Apache JSP container will look for the Eclipse Java Compiler (jdt).
我在classpath 碼頭,JSP的JDT-2.3.3.jar但由於某些原因,碼頭似乎忽略它。
所以,我的問題是 - 我如何設置一個沒有JSP預編譯的嵌入式Jetty,並且能夠在JRE中運行。這實際上就是我在Jetty 6中通過內置jasper編譯器所做的應用程序。 Jetty 9.2甚至有可能嗎?
有一個github項目演示了嵌入JSP的Jetty 9(由Jetty項目維護) - > https://github.com/jetty-project/embedded-jetty-jsp –