Сервлеты и статический контент с помощью встроенной пристани JRuby

StackOverflow https://stackoverflow.com/questions/1011771

Вопрос

Я бы хотел обслуживать сервлеты и статический контент с помощью встроенного в 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.)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top