Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何让嵌入式Jetty Web服务器转储JSP的临时Java代码_Java_Jsp_Jetty - Fatal编程技术网

如何让嵌入式Jetty Web服务器转储JSP的临时Java代码

如何让嵌入式Jetty Web服务器转储JSP的临时Java代码,java,jsp,jetty,Java,Jsp,Jetty,在OpenNMS中调试JSP页面时,我一直遇到这个问题。Jetty wiki在webdefault.xml中谈到了keepGenerated(),但似乎不清楚这在嵌入式设置中是如何工作的。它已经被转储了。 例如,如果您有一个名为index.jsp的文件,那么将创建一个名为index\u jsp.java 只需在工作目录中搜索类似内容。如果您使用的是Jetty 6,则可以使用以下代码: String webApp = "./web/myapp"; // Location of the jsp fi

在OpenNMS中调试JSP页面时,我一直遇到这个问题。Jetty wiki在webdefault.xml中谈到了keepGenerated(),但似乎不清楚这在嵌入式设置中是如何工作的。

它已经被转储了。 例如,如果您有一个名为
index.jsp
的文件,那么将创建一个名为
index\u 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());

我知道这已经有很多年了,但我在互联网上的任何地方都没有找到答案,而且这似乎也没有变得更容易。希望这将有助于某人:

从jetty-version.jar中提取您的webdefault.xml,我的位于:C:\Documents和 org/mortbay/jetty/webapp/webdefault.xml文件中的Settings\JB.m2\repository\org\mortbay\jetty\jetty\6.1.22\jetty-6.1.22.jar

将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>

org.mortbay.jetty
maven jetty插件
webdefault.xml

当您运行
mvn jetty:run
maven目标时,我的jsp代码现在保存在target\work\jsp\org\apache\jsp\WEB\u 002dINF\jsp

Hmm中,周围有一些${page}\u jsp.java文件,但当我更改相关jsp页面时,它们似乎不会更新,即使结果直接显示在浏览器上。对不起,我一直在整理一些我还没有回答的问题。恐怕我从来没能做到这一点,但我认为这要归功于OpenNMS启动Jetty的“特殊”方式。