如何获得嵌入式Jetty Web服务器以转储其JSP临时Java代码

时间:2020-03-06 14:20:44  来源:igfitidea点击:

在OpenNMS中调试JSP页面时,我一直遇到这个问题。 Jetty Wiki在webdefault.xml中讨论了keepGenerated(http://docs.codehaus.org/display/JETTY/KeepGenerated),但似乎尚不清楚它在嵌入式设置中如何工作。

解决方案

它已经被转储了。
例如,如果我们有一个名为index.jsp的文件,则将创建一个名为index_jsp.java的文件。
只需在工作目录中搜索类似的内容即可。

如果使用Jetty 6,则可以使用以下代码:

String webApp = "./web/myapp"; // Location of the jsp files
String contextPath = "/myapp";
WebAppContext webAppContext = new WebAppContext(webApp, contextPath); 
ServletHandler servletHandler = webAppContext.getServletHandler();
ServletHolder holder = new ServletHolder(JspServlet.class);
servletHandler.addServletWithMapping(holder, "*.jsp");
holder.setInitOrder(0);
holder.setInitParameter("compiler", "modern");
holder.setInitParameter("fork", "false");

File dir = new File("./web/compiled/" + webApp);
dir.mkdirs();
holder.setInitParameter("scratchdir", dir.getAbsolutePath());