1
のは、私はこのコードを持っているとしましょう:私は残りのエントリーポイント/テストを呼び出すために、文字列bar
を取得するために期待していた`@context HttpServletRequest`にヘッダーを挿入する方法は?
@ApplicationPath("...")
public class MyApp extends ResourceConfig {
public SalesLayerApplication() {
this.register(HeaderInjecterFilter.class);
this.register(Test.class);
}
}
@PreMatching
public class HeaderInjecterFilter implements ContainerRequestFilter {
@Override
public void filter(final ContainerRequestContext crc) throws IOException {
crc.getHeaders().add("foo", "bar");
}
}
@Path("/test")
public class Test {
@GET
@Produces(MediaType.TEXT_PLAIN)
public String dump(@Context final HttpServletRequest request) {
return request.getHeader("foo");
}
}
。
しかし、私は私が正しく変数を取得@HeaderParam("foo")
を使用しますが、私は@Context HttpServletRequest
througアクセスする必要がある場合は、私が見るすべては
nullです。
リクエストのコンテキストのヘッダがリクエストのヘッダと異なるコンテナにあると言っていますか? '@ HeaderParam'はどのように動作しますか? –
'@ HeaderParam'は、HttpServletRequestではなくContainerRequestContextから取得されます。 ContainerRequestContextはHttpServletRequestから構築され、次にJerseyはHttpServletRequestではなくContainerRequestContextを処理に使用します –