根据Jruby-Rack Github,我们可以配置为使用 org.jruby.rack.RackServlet 而不是上下文监听器。
我们可以使用另一个自定义 servlet 而不是 RackServlet 吗?或者我们可以覆盖 org.jruby.rack.RackServlet 吗?
根据Jruby-Rack Github,我们可以配置为使用 org.jruby.rack.RackServlet 而不是上下文监听器。
我们可以使用另一个自定义 servlet 而不是 RackServlet 吗?或者我们可以覆盖 org.jruby.rack.RackServlet 吗?
侦听器保留 - 您通常使用 servlet 而不是带有 Servlet 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>
您可以覆盖它RackFilter
,RackServlet
甚至可以使用自定义类,只要它符合 JRuby-Rack 的规则即可。使用最新的 Trinidad(在引擎盖下使用 JRuby-Rack)配置备用 servlet 会更容易一些,而无需编写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下的包目录...