小编bey*_*bey的帖子

jersey 2.2:ContainerResponseFilter和ContainerRequestFilter永远不会被执行

在Jersey网站上的入门指南之后:

我执行了以下构建命令:

$ mvn archetype:generate -DarchetypeArtifactId=jersey-quickstart-grizzly2 \
-DarchetypeGroupId=org.glassfish.jersey.archetypes -DinteractiveMode=false \
-DgroupId=com.example -DartifactId=simple-service -Dpackage=com.example \
-DarchetypeVersion=2.2
Run Code Online (Sandbox Code Playgroud)

然后我按照教程进行操作

https://jersey.java.net/documentation/latest/filters-and-interceptors.html#d0e6783

添加自定义ContainerResponseFilter:

@NameBinding
@Retention(RetentionPolicy.RUNTIME)
static @interface CORSBinding {}

@Provider
@Priority(Priorities.HEADER_DECORATOR)
@CORSBinding
static class CrossDomainFilter implements ContainerResponseFilter {
    @Override
    public void filter(ContainerRequestContext creq, ContainerResponseContext cres) {
        Logger.getLogger("com.example").log( Level.INFO, "before: {0}", cres.getHeaders());
        cres.getHeaders().add("Access-Control-Allow-Origin", "*");
        cres.getHeaders().add("Access-Control-Allow-Headers", "origin, content-type, accept, authorization");
        cres.getHeaders().add("Access-Control-Allow-Credentials", "true");
        cres.getHeaders().add("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS, HEAD");
        cres.getHeaders().add("Access-Control-Max-Age", "1209600");
        Logger.getLogger("com.example").log( Level.INFO, "after: {0}", cres.getHeaders());
    }
}

@Provider
static class MyResponseFilter implements ContainerResponseFilter {

    @Override
    public …
Run Code Online (Sandbox Code Playgroud)

java rest jersey grizzly

6
推荐指数
2
解决办法
1万
查看次数

标签 统计

grizzly ×1

java ×1

jersey ×1

rest ×1