代码之家  ›  专栏  ›  技术社区  ›  stsquad

如何让嵌入式Jetty web服务器转储其用于jsp的临时Java代码

  •  5
  • stsquad  · 技术社区  · 16 年前

    在OpenNMS中调试JSP页面时,我一直遇到这个问题。Jetty wiki谈到keepGenerated( http://docs.codehaus.org/display/JETTY/KeepGenerated

    3 回复  |  直到 15 年前
        1
  •  3
  •   James B    13 年前

    我知道这已经有很多年了,但是我还没有在互联网上找到答案,而且这似乎也没有变得更容易。希望这能帮助一些人:

    Settings\JB.m2\repository\org\mortbay\jetty\jetty\6.1.22\jetty-6.1.22.jar位于org/mortbay/jetty/webapp/webdefault.xml文件中

    将webdefault.xml放入我的项目目录

    编辑webdefault.xml并添加以下行:

    <servlet id="jsp">
     ....
      <init-param>
        <param-name>keepgenerated</param-name>
        <param-value>true</param-value>
      </init-param>
    

    将以下内容添加到maven pom.xml配置中:

    <plugin>
      <groupId>org.mortbay.jetty</groupId>
      <artifactId>maven-jetty-plugin</artifactId>
      <configuration>    
        <webDefaultXml>webdefault.xml</webDefaultXml>
      </configuration>
    </plugin>
    

    当你运行 mvn jetty:run 我的jsp代码现在保存在target\work\jsp\org\apache\jsp\WEB\u002dinf\jsp中

        2
  •  2
  •   Roel Spilker    16 年前

    如果您使用的是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());
    
        3
  •  0
  •   Javaxpert    16 年前

    它已经被丢弃了。 index.jsp ,将创建一个名为 index_jsp.java