Ich laufe immer wieder auf dieses Problem beim Debuggen von JSP-Seiten in OpenNMS. Das Jetty-Wiki spricht über keepGenerated (http://docs.codehaus.org/display/JETTY/KeepGenerated) in webdefault.xml, aber es scheint unklar, wie dies in eingebetteten Setups funktioniert.Wie bekomme ich einen eingebetteten Jetty-Webserver, um seinen vorläufigen Java-Code für JSPs zu entladen
Antwort
Es ist bereits deponiert. Wenn Sie beispielsweise eine Datei mit dem Namen index.jsp
haben, wird eine Datei mit dem Namen index_jsp.java
erstellt. Suchen Sie einfach im Arbeitsverzeichnis nach einer solchen Datei.
Wenn Sie Jetty 6 verwendet werden, können Sie den folgenden Code verwenden:
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());
Tut mir leid, ich habe ein paar Dinge auf Fragen geantwortet, die ich noch nicht beantwortet habe. Ich fürchte, dass ich das nie zur Arbeit bringen konnte, aber ich denke, dass es auf die "besondere" Weise zurückzuführen ist, wie OpenNMS Jetty startet. – stsquad
Ich weiß, das Alter alt ist, aber ich habe nicht die Antwort anderswo im Internet gefunden und es scheint nicht, als ob das einfacher geworden wäre. Hoffentlich hilft das jemand:
extrahieren Sie Ihre webdefault.xml aus der Jetty-Version.jar, meine war in: C: \ Dokumente und Einstellungen \ JB.m2 \ Repository \ Org \ Mortbay \ Jetty \ Jetty \ 6.1 .22 \ Anlegesteg-6.1.22.jar innerhalb der org/mortbay/Anlegestelle/webapp/webdefault.xml Datei
Setzen Sie den webdefault.xml in mein Projektverzeichnis
Bearbeiten Sie die webdefault.xml und fügen Sie den folgenden Linie:
<servlet id="jsp">
....
<init-param>
<param-name>keepgenerated</param-name>
<param-value>true</param-value>
</init-param>
Fügen Sie das folgende in Ihren maven pom. xml config:
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<configuration>
<webDefaultXml>webdefault.xml</webDefaultXml>
</configuration>
</plugin>
Wenn Sie das mvn jetty:run
Maven Ziel meiner jsp Code ausführen jetzt in Ziel \ work \ jsp \ org \ Apache \ jsp \ WEB_002dINF \ jsp
Hmm, gibt es einige $ gehalten wird {Seite } _jsp.java-Dateien herum, aber sie scheinen nicht zu aktualisieren, wenn ich die zugehörige jsp-Seite ändere, obwohl die Ergebnisse sofort im Browser angezeigt werden. – stsquad