Сервлеты и статический контент с помощью встроенной пристани JRuby
-
06-07-2019 - |
Вопрос
Я бы хотел обслуживать сервлеты и статический контент с помощью встроенного в 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 не работает как конкретный, но также показывает контент, созданный сервлетом, а не статический контент. Р>
Что касается сервлета: я сначала использовал javax.servlet.http.HttpServlet, но затем переключился на org.mortbay.jetty.servlet.DefaultServlet, так как этот, кажется, делает возможным параллельное обслуживание. Буду признателен за любые подсказки, чтобы решить эту проблему.
Решение
Попробуйте инициализировать context_static
перед context
(поскольку конструкторы принимают аргумент сервера, я предполагаю, что порядок создания экземпляров влияет на порядок сцепления контекстов). (Пробовал с помощью Jetty 6 и Clojure.)