Wie kann ich jar-Dateien in Steg/lib auf dem Steg classpath?
Ich habe Jetty jetty 9.2.3.v20140905
Mein Verständnis war, dass jar-Dateien in lib/jar oder lib/extern wurden automatisch auf dem classpath, aber möglicherweise wurde diese alte Verhalten von jetty-8.
Ich versuche zum bereitstellen einer webapp mit websockets. Mit meinem bereitgestellte war-Datei in das webapps-Verzeichnis, Steg hält sich beschwert, dass es nicht finden können Gläser sitzen genau dort in der jetty/lib-Verzeichnis (jetty-http -, Steg-io -, Steg-Sicherheit, jetty-server, jetty-servlet jetty-util sind die, an denen meine webapp muss, dass es nicht finden können)
Gläser platziert in lib/ext werden auch nicht abgeholt, wenn ich eine-module-ext
Wie kann ich dies beheben?
Adresse die Antwort unten (Bearbeitung der ursprünglichen Frage) ich habe versucht, die Aktivierung der server-Modul, auf dessen server.mod-Datei enthält die folgenden Zeilen:
[lib]
lib/servlet-api-3.1.jar
lib/jetty-schemas-3.1.jar
lib/jetty-http-${jetty.version}.jar
lib/jetty-server-${jetty.version}.jar
lib/jetty-xml-${jetty.version}.jar
lib/jetty-util-${jetty.version}.jar
lib/jetty-io-${jetty.version}.jar
Aus der Kommandozeile, mache ich
java -jar start.jar --module=server jetty.port=8182
und das Ergebnis ist:
2014-10-30 15:26:13.907:WARN:oejuc.AbstractLifeCycle:main: FAILED
org.eclipse.jetty.annotations.ServletContainerInitializersStarter@2635068e:
java.lang.NoClassDefFoundError: org/eclipse/jetty/server/Handler
java.lang.NoClassDefFoundError: org/eclipse/jetty/server/Handler
org.eclipse.jetty.server.Handler ist richtig, es in der jetty-server-jar-Sitze in meinem jetty/lib-Verzeichnis.
Vielleicht ist der Steg.version oder jetty.Basis-Variablen sind fehlerhaft?
Wenn ich eine
--list-classpath
Sehe ich alle jars im lib-Verzeichnis gibt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Welche Unterlagen sind, die Sie Lesen? (link bitte)
Das ganze Konzept einer
start.config
existiert nur in der Jetty-8 und älter.Aktuelle Dokumentation ist bei http://www.eclipse.org/jetty/documentation/current/
Text ist nicht gültig für Jetty
9.2.3.v20140905
Gibt es nie einen guten Grund zu haben ALLE der Gläser in
lib/
im server-classpath zur gleichen Zeit. In der Tat, würde das Ergebnis eine ungültige Umgebung, denn es gibt verschiedene Implementierungen von verschiedenen core-Technologien, die Sie ändern können (z.B. jsp, jstl, und javax.el). Es gibt auch Bibliotheken inlib/
erfordern, dass der 3rd-party-optionale Bibliotheken um zu funktionieren (wie npn, alpn), die Sie benötigen, um zu bestätigen Sie eine Lizenz, bevor Sie heruntergeladen werden.Welche Bibliotheken geladen werden, die entweder aus
{jetty.home}/lib
- und/oder{jetty.base}/lib
bestimmt, welche Module Sie aktiviert haben in deinem jetty-Instanz-Konfiguration.Lernen Start start.jar, command line, Module, libs, xml-Konfiguration, Konfiguration,
{jetty.base}
,{jetty-dir}
, und{jetty.home}
finden Sie in der "Startup-Dokumentation" anhttp://www.eclipse.org/jetty/documentation/current/startup.html
Um auf Ihre konkrete Frage, ab jetty und webapps.
(Wieder, dies ist alles dokumentiert in der "Startup-Dokumentation" URL oben)
Hier ist ein schnelles Beispiel mit
{jetty.home}
selbst (nicht mehr empfohlen, funktioniert aber):Nun für die passende Art und Weise, mit einem
{jetty.base}
:{jetty.home}/lib/
im server-classpath. Und zwingen wird es nichts erreichen zu. Aktualisieren Sie Ihre Frage genauer zu sein auf das, was Ziel, das Sie versuchen zu erreichen, wie "ich möchte für die Bereitstellung einer webapp mit jsps und websockets".