2016-05-13 10 views
2

Ich versuche Spring Boot mit JSP zu jar Verpackung zu erstellen. Ich baue Projekt und es funktioniert gut, wenn ich es laufen mit dieserIst es mit Spring Boot möglich, JSPs mit einem eigenständigen JAR-Packaging zu starten?

$ mvn Paket

$ java-Befehle -jar Ziel/mymodule-0.0.1-SNAPSHOT.jar

aber wenn ich gehe Verzeichnis ($ cd Ziel) und versuchen

$ Ziel java -jar mymodule-0.0.1-SNAPSHOT.jar

die Anwendung läuft gut, aber wenn ich den Browser öffne und versuche, die Seite zu öffnen, erhalte ich den Fehler "Es gab einen unerwarteten Fehler (Typ = Nicht gefunden, Status = 404). /WEB-INF/jsp/index.jsp“

fand ich diese Frage, aber wenn ich es versuchen, traf ich das gleiche Problem Is it possible with Spring Boot to serve up JSPs with a JAR packaging

Meine Fragen ist Warum funktioniert es, wenn ich

versuchen $ java -jar Ziel/mymodule-0.0.1-SNAPSHOT.jar

und funktioniert nicht, wenn ich

$ cd versuchen target

$ java -jar mymodule-0.0.1-SNAPSHOT.jar

Wie kann ich es lösen?

EDIT

Es ist nicht WEB-INF-Verzeichnis in Glas oder Zielverzeichnis und wenn ich es dort hilft es nicht

+0

Sie können nicht ... Siehe [Referenzhandbuch] (http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-de-veloping-web-applications.html#boot -features-jsp-Einschränkungen). * "Eine ausführbare JAR-Datei funktioniert nicht, da in Tomcat ein fest codiertes Dateimuster vorhanden ist." * Aus demselben Referenzhandbuch. Sie müssen 'Krieg'-Verpackung verwenden, damit es zuverlässig funktioniert –

+0

Ich habe es nicht bemerkt, bevor es hilft, aber ich habe immer noch die Frage, warum es funktioniert, wenn ich" $ java -jar target/mymodule-0.0.1-SNAPSHOT .jar "und funktioniert nicht richtig, wenn ich" $ java -jar mymodule-0.0.1-SNAPSHOT.jar "vom Ziel ausführen? –

Antwort

4

Wenn Sie Embedded verwenden Tomcat, Frühling Stiefel doesn't support using JSPs in an executable jar:

Mit Tomcat sollte es funktionieren, wenn Sie Kriegsverpackung verwenden, dh ein ausführbarer Krieg wird funktionieren, und kann auch in einem Standardcontainer (nicht beschränkt auf, aber einschließlich Tomcat) bereitgestellt werden. Ein ausführbares JAR funktioniert nicht, da in Tomcat ein fest codiertes Dateimuster vorhanden ist.

Es funktioniert, wenn Sie java -jar target/mymodule-0.0.1-SNAPSHOT.jar versuchen, weil die JSPs auf dem Dateisystem von src/main/webapp zur Verfügung, die Frühling-Boot als Dokument Wurzel während der Entwicklung der Einfachheit halber konfiguriert. Wenn Sie in das Zielverzeichnis wechseln, ist der Ordner src/main/webapp nicht mehr verfügbar, sodass die JSPs nicht mehr funktionieren.

Verwandte Themen