2009-06-18 10 views
1

jubtyがJRubyに埋め込まれたサーブレットと静的コンテンツを提供したいと思います。私はこれを試してみました: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に切り替えました。私はこの問題を解決するためのヒントがあれば幸いです。

答えて

2

contextより前にcontext_staticを初期化してみてください(コンストラクタがサーバー引数を取るため、インスタンス化の順序はコンテキストの連結順序に影響すると仮定します)。 (Jetty 6とClojureを使って試しました)

+0

素晴らしい!これは動作します! JettyのDefaultServletは必要ありませんが、HttpServletでうまく動作します。 多くの感謝! – konrad

関連する問題