Java 使用@WebFilter和@WebListener vs<;过滤器>;及<;听众>;在web.xml中(Jersy2和Servlet 3.x)

Java 使用@WebFilter和@WebListener vs<;过滤器>;及<;听众>;在web.xml中(Jersy2和Servlet 3.x),java,jakarta-ee,jersey-2.0,java-melody,servlet-3.1,Java,Jakarta Ee,Jersey 2.0,Java Melody,Servlet 3.1,我正试图在web应用程序中使用JavaMelody,以便进行监视 在build.gradle中的依赖关系 compile group: 'net.bull.javamelody', name: 'javamelody-core', version: '1.69.0' <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" vers

我正试图在web应用程序中使用
JavaMelody
,以便进行监视

在build.gradle中的依赖关系

compile group: 'net.bull.javamelody', name: 'javamelody-core', version: '1.69.0'
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.1"
         xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
    <filter>
        <filter-name>javamelody</filter-name>
        <filter-class>net.bull.javamelody.MonitoringFilter</filter-class>
        <async-supported>true</async-supported>
    </filter>
    <filter-mapping>
        <filter-name>javamelody</filter-name>
        <url-pattern>/*</url-pattern>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>ASYNC</dispatcher>
    </filter-mapping>
    <listener>
        <listener-class>net.bull.javamelody.SessionListener</listener-class>
    </listener>
</web-app>
使用web.xml(工作正常)

到这里为止,一切如期进行

但是我不想使用
web.xml
,因为我们可以在
Servlet3.x
中这样做。所以我喜欢下面,这似乎不起作用

过滤器

@WebFilter(urlPatterns = "/*", asyncSupported = true, dispatcherTypes = {DispatcherType.REQUEST, DispatcherType.ASYNC})
public class JavaMelodyMonitoringFilter extends MonitoringFilter {
}
修改的应用程序初始化

@ApplicationPath(value = "/*")
public class TestJavamelodyApp extends ResourceConfig {

    public TestJavamelodyApp() {
        packages("com.test.resources")
                .register(CustomWebExceptionMapper.class)
                .register(new TestCustomBinder())
                .register(MonitoringFilter.class)
                .register(SessionListener.class);
    }
}
我做错了什么?不是都一样吗

什么不起作用


使用
web.xml
,我可以访问
http://localhost:8080/test-应用程序/监控
,所有图形都显示良好。但是如果没有任何
web.xml
@WebFilter
,则无法访问该资源。

什么不起作用?预期输出与实际输出的对比是什么?@NexusDuck:问题中添加了。什么不起作用?预期产出与实际产出相比是多少?@NexusDuck:问题中添加了。
@ApplicationPath(value = "/*")
public class TestJavamelodyApp extends ResourceConfig {

    public TestJavamelodyApp() {
        packages("com.test.resources")
                .register(CustomWebExceptionMapper.class)
                .register(new TestCustomBinder())
                .register(MonitoringFilter.class)
                .register(SessionListener.class);
    }
}