Java Jersey提供程序未以编程方式获取上下文

Java Jersey提供程序未以编程方式获取上下文,java,web-services,jersey,jax-rs,Java,Web Services,Jersey,Jax Rs,我在Jersey中以编程方式启动了REST webservices,我需要它来包装对2PP提供者的调用,以实现AuthN/AuthZ目的。问题是2PP提供程序无法解析@Context。我在下面提供了一个代码正在执行的示例片段 需要集成的提供商: package com.fctest.restful.hello.provider; @Component (immediate = true) @javax.ws.rs.ext.Provider public class MyDummyProvide

我在Jersey中以编程方式启动了REST webservices,我需要它来包装对2PP提供者的调用,以实现AuthN/AuthZ目的。问题是2PP提供程序无法解析@Context。我在下面提供了一个代码正在执行的示例片段

需要集成的提供商

package com.fctest.restful.hello.provider;

@Component (immediate = true)
@javax.ws.rs.ext.Provider
public class MyDummyProvider
{
    @Context
    protected javax.inject.Provider<ContainerRequestContext> containerRequestContextProvider;
    //The above var is NULL causing calls to fail for this class.
}
@Activate
public void activate(BundleContext bctx)
{
    registerServlet(bctx);
    registerDummyResource();
    packages("com.fctest.restful.hello.provider");
    myContainer.reload(this);
}

private void registerServlet(BundleContext bctx)
{
    try
    {
        HttpService httpService = bctx.getService(bctx.getServiceReference(HttpService.class));
        Dictionary<String, String> jerseyServletParams = new Hashtable<String, String>();
        jerseyServletParams.put("javax.ws.rs.Application", NoAnnotateRest.class.getName());
        httpService.registerServlet("/services", myContainer, jerseyServletParams, null);
    }
    catch (Exception e)
    {
        LOG.error("Exception occurred registering servlet: ", e);
    }
}

private void registerDummyResource()
{
    final Resource.Builder resourceBuilder = Resource.builder();
    resourceBuilder.path("/hello2");

    final ResourceMethod.Builder methodBuilder = resourceBuilder.addMethod("GET");
    methodBuilder
            .produces(MediaType.TEXT_PLAIN_TYPE)
            .handledBy(new Inflector<ContainerRequestContext, String>()
            {
                @Override
                public String apply(ContainerRequestContext containerRequestContext)
                {
                    return "Hello World!";
                }
            });

    registerResources(resourceBuilder.build());
}
2017-06-01 17:03:45025 |警告| raf-3.0.7/部署|提供商
|75-org.glassfish.jersey.core.jersey-common-2.17.0 |供应商 com.fctest.restful.hello.provider.MyDummyProvider已在服务器中注册 运行时不实现应用于中的任何提供程序接口 服务器运行时。由于约束配置问题,提供程序 com.fctest.restful.hello.provider.MyDummyProvider将被忽略


在我的Spring Boot应用程序中,我遇到了一个类似的警告,解决方案是不注册
对象
,而是注册
对象.getClass()

如果是你的话,我会代替你

registerResources(resourceBuilder.build());


在我的Spring Boot应用程序中,我遇到了一个类似的警告,解决方案是不注册
对象
,而是注册
对象.getClass()

如果是你的话,我会代替你

registerResources(resourceBuilder.build());

register(resourceBuilder.build().getClass());