我正在尝试将JavaMelody监控添加到Rails 4.0应用程序中,该应用程序在JRuby和Warbler的帮助下部署到在Windows 2008 R2上运行的Tomcat。正如JavaMelody user guide中所述,我已将javamelody.jar
和jrobin-1.5.9.jar
添加到WEB-INF/lib/
,并将web.xml
扩展为基本上看起来像这样:
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<!-- JavaMelody -->
<filter>
<filter-name>monitoring</filter-name>
<filter-class>net.bull.javamelody.MonitoringFilter</filter-class>
<init-param>
<param-name>log</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>monitoring</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>net.bull.javamelody.SessionListener</listener-class>
</listener>
<!-- JRuby-Rack-->
<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.rails.RailsServletContextListener</listener-class>
</listener>
</web-app>
这似乎在某种程度上起作用 - 似乎记录了监视信息,因为我可以看到创建了一个文件夹<TOMCAT_HOME>\temp\javamelody
,并且其中的文件似乎已更新,我对应用程序发出了每个请求
但不幸的是,不的工作实际上是打开监控报告。当我转到http://localhost:8080/ourapp/monitoring
时,我没有获得用户指南中描述的报告页面,而是获得了我们的Rails应用程序的404页面。 Tomcat日志确认已加载JavaMelody monitoring
过滤器和SessionListener
,但似乎没有显示任何错误。我错过了什么?
答案 0 :(得分:0)
因为您映射了JRuby-Rack以处理所有内容(/ *),您需要重新排列映射以确保特定路径优先于其他过滤器处理,例如。
<filter-mapping>
<filter-name>monitoring</filter-name>
<url-pattern>/monitoring</url-pattern>
</filter-mapping>
如果可以映射它需要处理的路径,那么或者不将所有内容路由到JRuby-Rack(您可能还需要更改监视过滤器路径,或者如果您不介意,请尝试使用RackServlet&#34;替换& #34;容器默认servel)