[英]How to configure custom servlet in Jruby-rack?
According to Jruby-Rack Github , we can configure to use org.jruby.rack.RackServlet instead of context listener. 根据Jruby-Rack Github的介绍 ,我们可以配置为使用org.jruby.rack.RackServlet代替上下文侦听器。
Can we use another custom servlet rather than RackServlet? 我们可以使用其他自定义servlet而不是RackServlet吗? Or can we override org.jruby.rack.RackServlet? 还是我们可以覆盖org.jruby.rack.RackServlet?
The listener stays - you usually use a servlet instead of a filter with the Servlet API eg 监听器停留-您通常在Servlet API中使用servlet而不是过滤器,例如
<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>
You can override the RackFilter
as well as the RackServlet
you can even use a custom class as long as it plays by JRuby-Rack's rules. 您可以重写RackFilter
以及RackServlet
,甚至可以使用自定义类,只要它按照JRuby-Rack的规则播放即可。 With the latest Trinidad (uses JRuby-Rack under the hood) it's a bit easier to configure an alternate servlet without writing a web.xml eg in config/trinidad.yml you might : 使用最新的Trinidad(在引擎盖下使用JRuby-Rack),无需编写web.xml(例如在config / trinidad.yml中 ),配置备用servlet就容易一些:
---
address: localhost
port: 3000 # port where Trinidad is running
rack_servlet:
class: org.blue-smith.rack.CoolRackServlet
If you do make sure your CoolRackServlet
class is on the class-path eg package it in a jar and put the .jar under *[APP_ROOT]/lib/java* or for quick testing simply copy the compiled .class file(s) including the package directories under lib/java/classes ... 如果确实要确保CoolRackServlet
类位于类路径中,例如将其包装在jar中,然后将.jar放在* [APP_ROOT] / lib / java *下,或者为了进行快速测试,只需复制已编译的.class文件,包括lib / java / classes下的包目录...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.