如何在CXF中注册ContainerResponseFilter / ContainerRequestFilter?就像泽西岛的ResourceConfig。
@Provider
@Priority(value = 2)
public class CorsResponseFilter implements ContainerResponseFilter {
@Override
public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext)
throws IOException {
System.out.println("filtered");
}
}
答案 0 :(得分:2)
如果您已启用cxf,则添加属性cxf.jaxrs.component-scan=true
,那么资源和提供程序都应该是应用程序上下文的一部分。因此,使用@Service
或@Component
进行注释。
@Component
@Provider
@Priority(value = 2)
public class CorsResponseFilter implements ContainerResponseFilter {
@Override
public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext)
throws IOException {
System.out.println("filtered");
}
}
如果您正在使用类扫描,请确保提供程序是您提供的程序包的一部分。
cxf.jaxrs.classes-scan=true
cxf.jaxrs.classes-scan-packages=yourpackage where provider is present.