ruby-on-rails - JavaMelody 与 JRuby on Rails + Tomcat

标签 ruby-on-rails tomcat jruby jrubyonrails java-melody

我正在尝试添加 JavaMelody在 JRuby 和 Warbler 的帮助下,监控我们部署到在 Windows 2008 R2 上运行的 Tomcat 的 Rails 4.0 应用程序.如 JavaMelody user guide 中所述,我同时添加了 javamelody.jarjrobin-1.5.9.jarWEB-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已经加载并且似乎没有显示任何错误。我错过了什么?

最佳答案

由于您将 JRuby-Rack 映射为处理所有内容 (/*),您需要重新安排映射以确保特定路径优先于其他过滤器处理,例如

<filter-mapping>
  <filter-name>monitoring</filter-name>
  <url-pattern>/monitoring</url-pattern>
</filter-mapping>

或者如果可以映射需要处理的路径,则不将所有内容路由到 JRuby-Rack(您可能还需要更改监视过滤器路径,或者如果您不介意“替换”容器,则尝试使用 RackServlet默认服务器)

关于ruby-on-rails - JavaMelody 与 JRuby on Rails + Tomcat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28898138/

相关文章:

ruby-on-rails - rails 。按数组过滤 Postgres 对象。错误 : malformed array literal

java - 如何使用 JNA 从结构中获取 Structure.ByReference?

ruby-on-rails - x-www-form-urlencoded POST 请求和 net/http 上缺少查询参数

html - 简单表单添加填充并移动表单上的一些元素

android - 无法通过 USB 网络共享连接到 Tomcat

java - tomcat 5.5 - 读取资源文件时出现问题

java - 重新加载特定 Web 应用程序的脚本

exception - 如果在空的RAMDirectory上调用IndexSearcher,则为IndexNotFoundException

ruby - 在创建可执行 JRuby jar 时我可以遗漏什么?

ruby-on-rails - current_user 是否需要访问数据库?