我有一个在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 / *的过滤器,才能正常工作。 有没有解决方法?当然,使用此配置,我无法再访问任何页面。
答案 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。