Ich habe Anlegestelle Anlegestelle-9.2.3.v20140905Wie platziere ich Gläser in Jetty/Lib auf dem Jetty Classpath?
war mein Verständnis, dass Gläser in lib/jar oder lib/ext automatisch auf dem Classpath waren, aber das alte Verhalten von Anlegesteg gewesen sein mag 8.
Ich versuche eine Webapp mit Websockets zu implementieren. Mit meiner implementierten WAR-Datei im webapps-Verzeichnis beschwert sich Jetty, dass es keine Jugs finden kann, die genau dort im Jetty/Lib-Verzeichnis sitzen (Jetty-http, Jetty-Io, Jetty-Sicherheit, Jetty-Server, Jetty-Servlet, Anlegestelle). util sind die, die meine Webapp muss, dass es nicht finden können)
Gläser platziert in lib/ext auch nicht abgeholt, wenn ich einen --module-ext
Wie kann ich dieses Problem lösen?
die Antwort unten zu beheben, (die ursprüngliche Frage Bearbeitung) Ich habe versucht, den Server-Modul ermöglicht, deren 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
in der Befehlszeile, 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
or[email protected]2635068e:
java.lang.NoClassDefFoundError: org/eclipse/jetty/server/Handler
java.lang.NoClassDefFoundError: org/eclipse/jetty/server/Handler
org.eclipse.jetty.server.Handler ist genau dort in Jetty-Server-Glas sitzt in meinem Jetty/Lib-Verzeichnis.
Vielleicht sind die Variablen jetty.version oder jetty.base falsch?
Wenn ich führen eine
--list-classpath
ich dort im Verzeichnis lib alle Gläser tun sehen.
ich denke, dass der Text von Jetty wurde 8. – user2197116
ich denke, dass der Text von Jetty war der Fall 8.Is es nicht mehr dass alles in jetty.home/lib auf dem Klassenpfad ist? Was müsste ich tun, damit jede lib im Verzeichnis jetty.home/lib auf dem Klassenpfad steht? Lesen der Dokumentation, ich kopierte alles von lib in ext, und tat --module = ext von der Befehlszeile beim Starten von Anlegesteg, was nicht funktioniert hat. Ich habe auch versucht --module = http und --module = server, von denen keiner irgendeine Wirkung hatte. Wenn ich versuche, Klassen aus diesen Gläsern zu benutzen, kann der Steg den Krieg nicht laden und sagt, er könne die Klassen nicht finden. – user2197116
Es gibt keinen guten Grund für alle Jars in '{jetty.home}/lib /', sich im Server-Klassenpfad zu befinden. Und es zu erzwingen wird auch nichts bringen. Aktualisieren Sie Ihre Frage, um genauer festzulegen, welches Ziel Sie erreichen möchten, z. B. "Ich möchte eine Webanwendung mit Jsps und Websockets bereitstellen". –