gpt4 book ai didi

java - Grizzly 嵌入式服务器 + Jersey 服务 + Servlet 过滤器

转载 作者:行者123 更新时间:2023-11-29 06:36:04 25 4
gpt4 key购买 nike

以下代码运行我的 REST 服务,但我的 servlet 过滤器从未被调用。有什么想法吗?

WebappContext webappContext = new WebappContext("grizzly web context", "");

FilterRegistration testFilterReg = webappContext.addFilter("TestFilter", TestFilter.class);
testFilterReg.addMappingForUrlPatterns(EnumSet.allOf(DispatcherType.class), "/*");

ResourceConfig rc = new ResourceConfig().register(MyResource.class);
HttpServer httpServer = GrizzlyHttpServerFactory.createHttpServer(URI.create("http://localhost:8080/myapp/"), rc);
webappContext.deploy(httpServer);

最佳答案

简而言之,按照上述方式注册您的 ResourceConfig 将有效地绕过 Grizzly Servlet 容器。

为了利用 Servlet 过滤器,您需要执行以下操作:

    WebappContext webappContext = new WebappContext("grizzly web context", "");

FilterRegistration testFilterReg = webappContext.addFilter("TestFilter", TestFilter.class);
testFilterReg.addMappingForUrlPatterns(EnumSet.allOf(DispatcherType.class), "/*");

ServletRegistration servletRegistration = webappContext.addServlet("Jersey", org.glassfish.jersey.servlet.ServletContainer.class);
servletRegistration.addMapping("/myapp/*");
servletRegistration.setInitParameter("jersey.config.server.provider.packages", "com.example");


HttpServer server = HttpServer.createSimpleServer();
webappContext.deploy(server);
server.start();

关于java - Grizzly 嵌入式服务器 + Jersey 服务 + Servlet 过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20510277/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com