将 ContainerResponseFilter 添加到码头服务器
Adding a ContainerResponseFilter to jetty server
我想将 ContainerResponseFilter 和 ContainerRequestFilter 添加到我的码头服务器。但是当我尝试添加它时,出现 class 不好的错误。
我的码头服务器设置:
ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
context.setContextPath("/");
context.addFilter(CorsFilter.class, //Error here
"/*", EnumSet.of(DispatcherType.REQUEST));
Server jettyServer = new Server(8090);
jettyServer.setHandler(context);
ServletHolder jerseyServlet =
context.addServlet(ServletContainer.class, "/*");
jerseyServlet.setInitOrder(0);
jerseyServlet.setInitParameter("jersey.config.server.provider.classnames",
Login.class.getCanonicalName());
Starter.start(jettyServer);
和我的过滤器:
public class CorsFilter implements ContainerRequestFilter, ContainerResponseFilter {
错误是方法没有解析。
谢谢!
ContainerRequestFilter
和 ContainerResponseFilter
不是 Servlet 过滤器,它们是 JAX-RS 过滤器。
使用您的 ResourceConfig 实现注册它们。
示例:
@ApplicationPath("/")
public class MyApplication extends ResourceConfig {
public MyApplication() {
// Register resources and providers using package-scanning.
packages("my.package");
// Register my custom provider - not needed if it's in my.package.
register(CorsFilter.class);
// Register an instance of LoggingFilter.
register(new LoggingFilter(LOGGER, true));
...
}
}
我想将 ContainerResponseFilter 和 ContainerRequestFilter 添加到我的码头服务器。但是当我尝试添加它时,出现 class 不好的错误。
我的码头服务器设置:
ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
context.setContextPath("/");
context.addFilter(CorsFilter.class, //Error here
"/*", EnumSet.of(DispatcherType.REQUEST));
Server jettyServer = new Server(8090);
jettyServer.setHandler(context);
ServletHolder jerseyServlet =
context.addServlet(ServletContainer.class, "/*");
jerseyServlet.setInitOrder(0);
jerseyServlet.setInitParameter("jersey.config.server.provider.classnames",
Login.class.getCanonicalName());
Starter.start(jettyServer);
和我的过滤器:
public class CorsFilter implements ContainerRequestFilter, ContainerResponseFilter {
错误是方法没有解析。 谢谢!
ContainerRequestFilter
和 ContainerResponseFilter
不是 Servlet 过滤器,它们是 JAX-RS 过滤器。
使用您的 ResourceConfig 实现注册它们。
示例:
@ApplicationPath("/")
public class MyApplication extends ResourceConfig {
public MyApplication() {
// Register resources and providers using package-scanning.
packages("my.package");
// Register my custom provider - not needed if it's in my.package.
register(CorsFilter.class);
// Register an instance of LoggingFilter.
register(new LoggingFilter(LOGGER, true));
...
}
}