当前位置: 首页 > 面试题库 >

如何将协作者连接到Jersey资源中?

锺离锦
2023-03-14
问题内容

我有一种方法来启动我的应用程序:

public void start() throws IOException {
    final Map<String, String> initParams = new HashMap<String, String>();
    initParams.put("com.sun.jersey.config.property.packages", "com.example");
    threadSelector = GrizzlyWebContainerFactory.create(baseUri, initParams);
}

我有一个Jersey资源类:

@Path("/notification")
public class NotificationResource {
    // HOW DO I INJECT THIS GUY?
    private MySampleCollabolator  mySampleCollabolator;

    @POST
    public void create() {
        System.out.println("Hello world"); 
    }
}

处理依赖关系的正确方法是什么?我希望我的资源与其他对象进行通信,如何将它们连接在一起?


问题答案:

您可以实现InjectableProvider。例如:

@Provider
public class FooProvider
    implements InjectableProvider<Resource, Type> {

    public ComponentScope getScope() {
        return ComponentScope.PerRequest;
    }

    public Injectable getInjectable(ComponentContext ic, Resource resource, Type type) {
        return new Injectable() {
            public Object getValue() {
                return new Foo();
            }
        };
    }
}

然后在资源中注释字段:

@Resource private Foo foo;



 类似资料:
  • 我使用Jersey Resources和实现了一个API,看看哪一个更快。

  • 我正在使用Dropwizard 8.2.0构建REST服务。我有2个资源:FolderResource和FileResource: 我做错了什么?

  • 起初,在我的web服务器中,我只有一个REST servlet。类似于: 和web.xml: 但是后来我想向服务器添加一些静态html,所以我将servlet映射更新为/rest/* 控制器servlet类的@path指令从“/”到“/rest”。一切都很好,但是controller的子资源或方法与@path指令停止工作…IE: null 我使用了trace util,得到了以下结果: 对于/[a

  • 问题内容: 我收到此错误: 怎么修?(我需要成为)。谢谢。 问题答案: 试试这个 :

  • 我的疑问是如何通过rest客户端以指定的角色访问这个服务。

  • Collaborators,协作者。一起协作开发,项目都会有一个主要的公共远程仓库。取决于你使用哪种协作开发的工作流程,一般你需要在项目的远程仓库设置一下,去添加项目的协作开发者。只有添加进来的开发者才有权限把他们自己对项目的提交推送到项目的公共远程仓库里。 添加协作者 在 Github 上,为项目添加协作者,先打开项目仓库页面,打开 Settings,在左边栏上在选择 Collaborators