Сервлеты и статический контент с помощью встроенной пристани JRuby - PullRequest
1 голос
/ 18 июня 2009

Я бы хотел обслуживать сервлеты и статический контент с помощью Jetty, встроенного в JRuby. Я попробовал это:

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()

Проблема в том, что http://localhost:8080/static не работает как exepecte, но также показывает контент, созданный сервлетом, а не статический контент.

Относительно сервлета: я сначала использовал javax.servlet.http.HttpServlet, но затем переключился на org.mortbay.jetty.servlet.DefaultServlet, так как этот, кажется, делает возможным параллельное обслуживание. Буду признателен за любые подсказки, чтобы решить эту проблему.

1 Ответ

2 голосов
/ 18 июня 2009

Попробуйте инициализировать context_static до context (поскольку конструкторы принимают аргумент сервера, я предполагаю, что порядок создания экземпляров влияет на порядок сцепления контекстов). (Пробовал с помощью Jetty 6 и Clojure.)

...