Javamelody со Struts 2. Действие для мониторинга не назначено

У меня есть веб-приложение Struts 2, Java 8, работающее на Wildfly 10, и я хотел интегрировать Javamelody, но я не могу получить доступ к странице мониторинга независимо от моей конфигурации в web.xml и struts.xml

Я использую следующую зависимость maven

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

В моем файле web.xml (версия веб-приложения = "3.0") у меня следующая конфигурация:

<filter>
    <filter-name>monitoring</filter-name>
    <filter-class>net.bull.javamelody.MonitoringFilter</filter-class>
    <async-supported>true</async-supported>
</filter>
<filter-mapping>
    <filter-name>monitoring</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>ASYNC</dispatcher>
</filter-mapping>
<listener>
    <listener-class>net.bull.javamelody.SessionListener</listener-class>
</listener>

В моей конфигурации стойки следующие

<interceptor-stack name="myStack">
    <interceptor-ref name="monitoring"/>
    <interceptor-ref name="defaultStack"/>
</interceptor-stack>

и установите myStack по умолчанию

<default-interceptor-ref name="myStack" />

Когда я пытаюсь получить доступ к http://localhost:8080/myapp/monitoring, я получаю следующую ошибку: [ org.apache.struts2.dispatcher.Dispatcher] (задача по умолчанию-3) Не удалось найти действие или результат: Действие не сопоставлено для пространства имен / мониторинга имен действий. - [местонахождение неизвестно]

Я не могу найти в Интернете много ресурсов, посвященных этой проблеме или настройке с помощью Struts. Любые идеи ?

Примечание. Я на шаг ближе, но не понимаю, почему это происходит. Мне пришлось удалить все фильтры, у которых был URL-шаблон / *, чтобы это сработало. Есть ли способ обойти это? Конечно, с этой конфигурацией я больше не могу получить доступ ни к одной из своих страниц.


person Stephan    schedule 31.05.2019    source источник
comment
Пожалуйста, укажите ваш полный web.xml. Порядок фильтров имеет значение.   -  person Dave Newton    schedule 31.05.2019
comment
Struts2 рассматривает все, что поступает в запрос, как действие, и почему у вас нет конфигурации для этого? См. stackoverflow.com/a/21097463/573032   -  person Roman C    schedule 03.06.2019


Ответы (1)


В руководстве пользователя javamelody говорится, что нужно написать javamelody MonitoringFilter в WEB -INF / web.xml перед вашим сервлетом. Но в случае Struts 2 больше нет сервлета, а Struts 2 управляется фильтром.

Поэтому вам нужно написать javamelody MonitoringFilter в WEB-INF / web.xml перед фильтром Struts 2.

person evernat    schedule 31.05.2019
comment
Я пропустил это предложение. Действительно, это решает проблему. Спасибо - person Stephan; 10.06.2019