JavaMelody 1.52.0 с Tomcat 8.0.5 — мониторинг не найден

Это моя установка:

Apache Tomcat: 8.0.5

JavaMelody: 1.52.0 — добавлено через зависимость от Maven.

<dependency>
  <groupId>net.bull.javamelody</groupId>
  <artifactId>javamelody-core</artifactId>
  <version>1.52.0</version>
</dependency>

веб.xml

<?xml version="1.0" encoding="UTF-8"?>
 <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

<welcome-file-list>
    <welcome-file>index.html</welcome-file>
</welcome-file-list>

<filter>
    <filter-name>monitoring</filter-name>
    <filter-class>net.bull.javamelody.MonitoringFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>monitoring</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
    <listener-class>net.bull.javamelody.SessionListener</listener-class>
</listener>

<listener>
    <listener-class>com.something.utils.WebAppInitializer</listener-class>
</listener>

<servlet>
    <servlet-name>jersey-services</servlet-name>
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
    <init-param>
        <param-name>com.sun.jersey.config.property.packages</param-name>
        <param-value>com.brightertext.server.services</param-value>
    </init-param>
    <init-param>
        <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
        <param-value>true</param-value>
    </init-param>
</servlet>

<servlet-mapping>
    <servlet-name>jersey-services</servlet-name>
    <url-pattern>/services/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>/static/*</url-pattern>
</servlet-mapping>
</web-app>

Приложение развертывается через плагин tomcat-maven:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>tomcat-maven-plugin</artifactId>
    <configuration>
       <url>http://domain.com:8080/manager/text</url>
       <server>tomcat</server>
       <path>/something</path>
    </configuration>
</plugin>

Согласно catalina.out, инициализация JavaMelody выглядит нормально:

2014-08-29 14:33:28,675 [localhost-startStop-1] DEBUG net.bull.javamelody - JavaMelody filter init started
2014-08-29 14:33:28,677 [localhost-startStop-1] DEBUG net.bull.javamelody - OS: Mac OS X unknown, x86_64/64
2014-08-29 14:33:28,677 [localhost-startStop-1] DEBUG net.bull.javamelody - Java: Java(TM) SE Runtime Environment, 1.8.0_05-b13
2014-08-29 14:33:28,677 [localhost-startStop-1] DEBUG net.bull.javamelody - Server: Apache Tomcat/8.0.5
2014-08-29 14:33:28,677 [localhost-startStop-1] DEBUG net.bull.javamelody - Webapp context: /something
2014-08-29 14:33:28,678 [localhost-startStop-1] DEBUG net.bull.javamelody - JavaMelody version: 1.52.0
2014-08-29 14:33:28,678 [localhost-startStop-1] DEBUG net.bull.javamelody - JavaMelody classes loaded from: jar:file:/usr/share/apache-tomcat-8.0.5/webapps/something/WEB-INF/lib/javamelody-core-1.52.0.jar!/net/bull/javamelody/
2014-08-29 14:33:28,679 [localhost-startStop-1] DEBUG net.bull.javamelody - Host: [email protected]
2014-08-29 14:33:28,680 [localhost-startStop-1] DEBUG net.bull.javamelody - log listeners initialized
2014-08-29 14:33:28,681 [localhost-startStop-1] DEBUG net.bull.javamelody - datasources found in JNDI: []
2014-08-29 14:33:28,683 [localhost-startStop-1] DEBUG net.bull.javamelody - counters initialized
2014-08-29 14:33:28,703 [localhost-startStop-1] DEBUG net.bull.javamelody - counters data read from files in /usr/share/apache-tomcat-8.0.5/temp/javamelody/something_Matthiass-MBP.fritz.box
2014-08-29 14:33:29,233 [localhost-startStop-1] DEBUG net.bull.javamelody - collect task scheduled every 60s
2014-08-29 14:33:29,276 [localhost-startStop-1] DEBUG net.bull.javamelody - first collect of data done
2014-08-29 14:33:29,277 [localhost-startStop-1] DEBUG net.bull.javamelody - JavaMelody filter init done in 602 ms

Как получить доступ к странице мониторинга? Ни http://domain.com:8080/something/monitoring, ни: http://domain.com:8080/something/services/monitoring работает.


person Scholle    schedule 29.08.2014    source источник
comment
Выглядит здоровым. Хм. Попробуйте добавить параметр журнала, показанный здесь: code.google.com/p/ javamelody/вики/.   -  person Freiheit    schedule 29.08.2014
comment
Я включил регистрацию. К сожалению, в catalina.out нет больше строк логирования, чем показано выше. Я предполагаю, что это потому, что JavaMelody нечего делать, пока что-то не будет запрошено, но для этого нужно знать путь.   -  person Scholle    schedule 29.08.2014
comment
Эта ссылка также показывает путь. Его server:port/‹app контекст›/monitoring. Так что в вашем случае я думаю, что это должно быть domain.com:8080/something/monitoring из-за эта строка журнала 2014-08-29 14:33:28,677 [localhost-startStop-1] DEBUG net.bull.javamelody — контекст веб-приложения: /something.   -  person Freiheit    schedule 29.08.2014
comment
Доступно ли приложение something, даже если мелодия недоступна?   -  person Freiheit    schedule 29.08.2014
comment
Да, domain.com:8080/something/monitoring — это то, что я всегда пробую поначалу.   -  person Scholle    schedule 29.08.2014
comment
Да, domain.com:8080/something — это приложение, предоставляющее набор сервисов. Итак, добавив /services, которые я настроил в web.xml, я могу вызвать domain.com:8080/ something/services/service1, который работает должным образом.   -  person Scholle    schedule 29.08.2014


Ответы (1)


Я заработал, удалив следующие строки из web.xml (см. выше):

<servlet-mapping>
   <servlet-name>default</servlet-name>
   <url-pattern>/static/*</url-pattern>
</servlet-mapping>

Я сообщил об этом как об «ошибке» автору JavaMelody. Не уверен, что это на самом деле один.

https://groups.google.com/forum/#!topic/javamelody/fRPJ7q1KzbA

person Scholle    schedule 30.08.2014