Как получить встроенный веб-сервер Jetty для вывода временного кода Java для JSP - PullRequest
5 голосов
/ 18 сентября 2008

Я продолжаю сталкиваться с этой проблемой при отладке страниц JSP в OpenNMS. В вики Jetty говорится о keepGenerated (http://docs.codehaus.org/display/JETTY/KeepGenerated) в webdefault.xml, но, похоже, неясно, как это работает во встроенных установках.

Ответы [ 3 ]

3 голосов
/ 28 ноября 2011

Я знаю, что это давние времена, но я не нашел ответа где-либо еще в Интернете, и, похоже, это не стало легче. Надеюсь, это кому-нибудь поможет:

извлеките ваш файл webdefault.xml из файла jetty-version.jar, который находился в: C: \ Documents and Настройки \ 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 maven, мой jsp-код теперь сохраняется в target \ work \ jsp \ org \ apache \ jsp \ WEB_002dINF \ jsp

2 голосов
/ 18 сентября 2008

Если вы используете 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());
0 голосов
/ 18 сентября 2008

Уже сброшено. например, если у вас есть файл с именем index.jsp, будет создан файл с именем index_jsp.java Просто найдите что-то подобное в рабочем каталоге.

...