Jruby-Rack Githubによると、コンテキストリスナーの代わりにorg.jruby.rack.RackServletを使用するように構成できます。
RackServletではなく別のカスタムサーブレットを使用できますか?または、org.jruby.rack.RackServletをオーバーライドできますか?
Jruby-Rack Githubによると、コンテキストリスナーの代わりにorg.jruby.rack.RackServletを使用するように構成できます。
RackServletではなく別のカスタムサーブレットを使用できますか?または、org.jruby.rack.RackServletをオーバーライドできますか?
リスナーは残ります-通常、サーブレットAPIでフィルタの代わりにサーブレットを使用します。
<servlet>
<servlet-name>rack</servlet-name>
<servlet-class>org.jruby.rack.RackFilter</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>rack</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
<!-- using the above servlet instead of : -->
<!--
<filter>
<filter-name>RackFilter</filter-name>
<filter-class>org.jruby.rack.RackFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>RackFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
-->
<listener>
<listener-class>org.jruby.rack.RackServletContextListener</listener-class>
</listener>
JRuby-Rackのルールに従って再生される限り、カスタムクラスを使用するだけでなく、オーバーライドすることもRackFilter
できます。RackServlet
最新のトリニダード(内部でJRuby-Rackを使用)を使用すると、web.xmlを記述せずに代替サーブレットを構成するのが少し簡単になります(例:config / trinidad.yml ) 。
---
address: localhost
port: 3000 # port where Trinidad is running
rack_servlet:
class: org.blue-smith.rack.CoolRackServlet
クラスがクラスパス上にあることを確認する場合CoolRackServlet
、たとえば、クラスをjarにパッケージ化して、.jarを* [APP_ROOT] / lib / java *の下に置くか、簡単なテストのために、コンパイルされた.classファイルをコピーします。lib / java/classesの下のパッケージディレクトリ..。