Javamelody与Struts 2。没有为监控而映射的操作

时间:2019-05-31 08:04:53

标签: java struts2 java-melody

我有一个在Wildfly 10上运行的Struts 2 Java 8 Web应用程序,并且想要集成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>

在以下我的struts配置中

<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)找不到操作或结果:没有为名称空间/和操作名称监视映射的操作。 -[未知位置]

我在Web上找不到许多有关此问题或Struts配置的资源。有什么想法吗?

注意:我离我们只有一步之遥,但我不知道为什么会这样。 我必须删除所有具有url-pattern / *的过滤器,才能正常工作。 有没有解决方法?当然,使用此配置,我无法再访问任何页面。

1 个答案:

答案 0 :(得分:0)

javamelody user's guide表示要在Servlet之前在WEB-INF / web.xml中编写javamelody MonitoringFilter。但是对于Struts 2,there is no more servlet and Struts 2 is controlled by a filter

因此您必须在Struts 2过滤器之前在WEB-INF / web.xml中编写javamelody MonitoringFilter。