2017-05-17 6 views
0

I cteate eine Anlegestelle & Jersey Embedded-Projekt mit IDEA und Maven, ich lege es in Github https://github.com/Mengqi777/JettyProject. Run JettyServerStart.java den Server starten, in der Browser-Adressleiste eingeben localhost:8080/dynamic, zeigt OK, geben Sie localhost:8080/static zeigen statische RessourcendateiStellen Sie einen eingebetteten Jetty & Jersey Krieg zu jetty9 zur Verfügung, kann nur statische Datei sehen?

ich es jetzt zu einem Krieg Datei verpacken, und es in Anlegestelle webapps Verzeichnis. Aber nur kann statische Datei in Brower mit eingeben localhost:8080/static .404 nicht gefunden Error wenn in brower mit eingeben localhost:8080/dynamic

Was ist passiert?

Was soll ich tun, um dieses Projekt in eine WAR-Datei oder JAR-Datei zu packen und es erfolgreich in Jetty auszuführen?

+0

Jetzt kann ich dieses eingebettete Projekt nur in IDEA ausführen. Was ich wissen möchte ist, wie man es ohne IDEA laufen lässt? –

Antwort

0

Sie tun Dinge in Ihrer Embedded-Jetty-Verwendung in JettyServerStart.java, die Sie in Ihrer Webapp- oder War-Datei nicht deklarieren/konfigurieren.

Es ist ein Maven-Projekt, aber nicht als Webapp oder Kriegsprojekt (in der pom.xml) erklärte

Sein nicht über seinen WEB-INF an der richtigen Stelle (Maven Verzeichnisstruktur weist), das bedeutet, dass Ihre erstellte WAR-Datei ungültig ist.

Die Abhängigkeiten sind nicht richtig für eine Webapp oder Kriegsprojekt erklärt (Sie können nicht Anlegesteg-Server in einer WAR-Datei enthalten)

Ihr schlecht gelegen WEB-INF/web.xml die gleichen Konfigurationsschritte nicht durchführen, wie Ihr JettyServerStart.java

Sie geben nicht an, wie Sie Ihr ${jetty.base} Verzeichnis erstellt haben, um diese Kriegsdatei zu unterstützen?

Sie haben nicht angegeben, welche Version von jetty-distribution oder jetty-home Sie heruntergeladen haben oder mit der Sie arbeiten möchten.

Die Aussage "und steckte es in Jetty Webapps Verzeichnis" ist unklar, welche? (Die Verwendung von Jetty-Verteilung/Webapps ist ungültig und führt zu vielen Fehlern und Warnungen, wenn Sie versuchen, es für Ihre eigenen Webapps zu verwenden, es gibt keine Jetty-Home-/Webapps und Sie haben Ihre Jetty-Base-Konfiguration nicht identifiziert)

Die Art und Weise, wie Ihr Projekt jetzt deklariert wird, auch wenn es manuell zusammengestellt wurde, überspringen maven vollständig, Sie haben keine Servlets, keine Filter, keine Listener, keine Initialisierer, nur eine Servlet-Spezifikation DefaultServlet auf URL-Muster / geben Sie statischen Inhalt. Deshalb funktioniert der Zugriff auf http://localhost:8080/static/, aber sonst nichts.

+0

Vielen Dank, ich weiß sehr wenig über Jetty und Maven, und ich werde mehr über beides lernen. –

Verwandte Themen