paramconverter

cs7cruho  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(317)

我正在使用jersey版本2.27创建一个jersey应用程序。
我的一个资源是使用@queryparam读取查询参数值。
我正在创建paramconverter和paramconverterprovider,以便指定参数的类型:

@GET
public MyObject getObject(@QueryParam("myvalue") MyParamObject param) {

}

我的问题是,查询参数的解析取决于http头的值。
如何在paramconverter中访问请求的http头?
我尝试在paramconverterprovider中注入containerrequestcontext,但这会导致以下错误:
java.lang.illegalstateexception:不在请求范围内。

11dmarpk

11dmarpk1#

我注射了一种 ServiceLocator 内部 ParamConverterProvider 把它传给 ParamConverter . 这个 ParamConverter 然后就可以拿到 ContainerRequestContextfromString() 方法:

public Message fromString(final String value) {
    final ContainerRequestContext requestContext = injector.getService(ContainerRequestContext.class);
}

相关问题