ws

  • App.java
  • ResponseFilter.java
  • RequestFilter.java
  • pom.xml

App.java

package com.training.jax_rs_2._client_side_filters;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.WebTarget;
import javax.ws.rs.core.Response;

public class App {

    public static void main(String[] args) {
        new App().execute();
    }

    private void execute() {
        ExecutorService executorService = Executors.newSingleThreadExecutor();
        executorService.execute(new Runnable() {

            @Override
            public void run() {
                runClient();
            }
        });
        executorService.shutdown();
    }

    private void runClient() {
        Client client = ClientBuilder.newClient();
        client.register(RequestFilter.class);
        client.register(ResponseFilter.class);

//        WebTarget webTarget = client.target("http://localhost:8080/jax_rs_2.0_server_side_filters/rest");
        WebTarget webTarget = client.
                target("http://localhost:8080").
                path("jax_rs_2.0_server_side_filters").
                path("rest");

        Response response = webTarget.request().get();
        System.out.println(response);
    }

}

ResponseFilter.java

package com.training.jax_rs_2._client_side_filters;

import java.io.IOException;
import javax.ws.rs.client.ClientRequestContext;
import javax.ws.rs.client.ClientResponseContext;
import javax.ws.rs.client.ClientResponseFilter;

public class ResponseFilter implements ClientResponseFilter {

    @Override
    public void filter(ClientRequestContext requestContext, ClientResponseContext responseContext) throws IOException {
        System.out.println("ClientResponseFilter");

    }

}

RequestFilter.java

package com.training.jax_rs_2._client_side_filters;

import java.io.IOException;
import javax.ws.rs.client.ClientRequestContext;
import javax.ws.rs.client.ClientRequestFilter;

public class RequestFilter implements ClientRequestFilter {

    @Override
    public void filter(ClientRequestContext requestContext) throws IOException {
        System.out.println("ClientRequestFilter");
        requestContext.getHeaders().add("id", "123");
    }

}

pom.xml

...
        <dependency>
            <groupId>org.glassfish.jersey.core</groupId>
            <artifactId>jersey-client</artifactId>
            <version>2.19</version>
        </dependency>
...