2009-06-18 7 views
1

Ich würde Servlets und statischen Inhalt mit Jetty in JRuby eingebettet dienen. Ich versuchte dies:Servlets und statischer Inhalt mit JRuby Embedded Jetty

server = Server.new(8080) 
context = Context.new(server, '/', 0) 

context_static = Context.new(server, '/static', 0) 
context_static.setHandler(ResourceHandler.new) 
context_static.setResourceBase('./') 
context_static.setContextPath('/static') 

servlet = Servlet.new() 
holder = ServletHolder.new(servlet) 
context.addServlet(holder, '/') 
server.start() 

Das Problem ist, dass die http://localhost:8080/static nicht als exepecte funktioniert, sondern zeigt auch den Inhalt von dem Servlet erstellt und nicht den statischen Inhalt.

In Bezug auf das Servlet: Ich habe zuerst javax.servlet.http.HttpServlet verwendet, aber dann zu org.mortbay.jetty.servlet.DefaultServlet gewechselt, als ob man das parallele Serving möglich macht. Ich wäre dankbar für Hinweise, um dieses Problem zu lösen.

Antwort

2

Versuchen Sie, context_static vor context zu initialisieren (da die Konstruktoren ein Serverargument annehmen, nehme ich an, dass die Reihenfolge der Instanziierung die Verkettungsreihenfolge der Kontexte beeinflusst). (Versucht es mit Jetty 6 und Clojure.)

+0

Großartig! Das funktioniert! Und es benötigt kein DefaultServlet von Jetty, funktioniert aber gut mit HttpServlet. Vielen Dank! – konrad

Verwandte Themen