Migration vom Steg 6 Steg 8
Benutze ich jetty6 in der einfachen Anwendung als eingebettete servlet-container. Ich beschloss, zu aktualisieren, um die Jetty-8.
In jetty 6 es war ziemlich einfach, um den server zu starten:
Server server = new Server(8080);
Context context = new Context(server, "/", Context.SESSIONS);
context.addServlet(MyServlet.class, "/communication-service");
server.start();
aber es funktioniert nicht in Jetty8.
Leider kann ich nicht finden einfaches Beispiel für diese version. Kann nicht instanziiert Zusammenhang mit Fehler
an enclosing instance that contains
org.eclipse.jetty.server.handler.ContextHandler.Context is required
weil jetzt ist es eine innere Klasse und auch keinen solchen Konstruktor.
Meisten Beispiele sind für jetty 6 und 7.
Könnten Sie bitte geben Sie einfachen Beispiel, wie start-servlet-am Steg 8?
- Nein, es funktioniert nicht.
- Ihre Frage ist kurz auf detail. Was nicht funktioniert? Welche Zeile das problem verursacht? Gibt es einen stack-trace, wenn Sie versuchen, und führen Sie?
- Ich habe das gleiche problem in einigen meiner Jetty 6-code. Ich hatte zwei
Context
s, die den server als parameter. Im Steg 8 der Muster scheint invertiert werden, dass Sie einsetHandler
Methode in den server (für eine einzige Prozedur). Aber keiner der Dokumentation scheint zu befassen, wie Sie migrieren Sie den code mit mehr als einem Rahmen befestigt, auf dem gleichen Server. Ist dies eine situation, wo Sie gemeint sind, um über ein Kontext-Handler Kollektion? - Ah, arbeitete es aus. Tim ' s Antwort unten ist alles, was ich brauchte, mit mehreren
handler.addServlet
- Aufrufe für jedes servlet.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist der Steg 8 entspricht deinem code. Es ist immer noch genauso einfach ist, wie es vorher war, aber die API hat sich etwas verändert.
Wenn dies nicht für Sie arbeiten, dann haben Sie wahrscheinlich ein classpath-Problem - Steg 8 ist getrennt in eine Menge von unabhängigen jar-Dateien, und Sie müssen eine Reihe von Ihnen. Zumindest müssen Sie:
Wenn Sie diese Gläser, dann sollte dieser code funktionieren:
Steg ist heute Teil der Eclipse. Die Dokumentation hier ist für Jetty 7, aber behauptet, es sollten für die Jetty-8. Es ist ein Beispiel für die Verwendung von servlets zum Ende der Seite.