【发布时间】:2019-10-16 20:50:28
【问题描述】:
我有一个在 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 (web-app version="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)找不到操作或结果:没有为命名空间/和操作名称监视映射的操作。 - [未知位置]
我在网上找不到很多关于这个问题或 Struts 配置的资源。有什么想法吗?
注意:我更近了一步,但我不明白为什么会这样。 我必须删除所有具有 url-pattern /* 的过滤器才能正常工作。 有解决方法吗?当然,有了这个配置,我就不能再访问我的任何页面了。
【问题讨论】:
-
请填写完整的
web.xml。过滤器排序很重要。 -
Struts2 将请求中的所有内容都视为一个动作,为什么您没有为此进行配置?见stackoverflow.com/a/21097463/573032
标签: java struts2 java-melody