lotus-domino - 'DAS-Domino REST服务'和Spring集成。这是真的吗?

lotus-domino - 'DAS-Domino REST服务'和Spring集成。这是真的吗?,第1张

我想在多米诺骨牌上构建自己的REST服务。我试过ExtLib github源代码 - 'DAS - Domino REST服务' - com.ibm.domino.services.sample。

http://www-10.lotus.com/ldd/ddwiki.nsf/dx/Create_your_own_Domino_REST_service_using_DAS

我还没有找到如何将我自己的上下文注入资源。我的上下文与几个NotesDatabases有连接,可能还有其他对象,我不想在每次处理HTTP请求时初始化它们。

实际上我使用Spring AppContext存储我的上下文对象和我需要的其他bean。

所以问题是如果有可能如何将一些对象(最好是Spring AppContext)注入到Resource对象中。

我想找到这样的东西:

SampleService.java

package com.ibm.domino.services.sample.resources;
...
public class SampleService extends RestService {

>> private ApplicationContext ctx = new ClassPathXmlApplicationContext(...);


public Set<Class<?>> getClasses() {
    Set<Class<?>> classes = new HashSet<Class<?>>();
    SAMPLE_SERVICE_LOGGER.getLogger().fine("Adding sample service resources."); // $NON-NLS-1$
    classes.add(RootResource.class);
    classes.add(ContactsListResource.class);

    return classes;
}
...

RootResource.java

package com.ibm.domino.services.sample.resources;
...
@Path("sample") // $NON-NLS-1$
public class RootResource {

>> @Inject / @Autowired
>> private ApplicationContext ctx;

/**
 * Gets links.
 * 
 * @param uriInfo
 * @return
 */
@GET
public Response getLinks(@Context UriInfo uriInfo) {
...

我是REST的初学者。可能我走错了方向。

我很感激任何想法......

最佳答案:

1 个答案:

答案 0 :(得分:0)

REST API通常是无状态的。在DAS中,每个请求都会获得lotus.domino.Session的新实例。即使两个请求由同一用户进行身份验证,它们也会获得不同的Session对象。

当然,有一些方法可以将状态注入到您的实现中。例如,如果您尝试在请求之间存储每用户状态,则可以创建对象的静态映射,其中键是唯一的用户ID。但是,您将负责管理缓存。例如,您可能希望偶尔删除非活动用户的条目。 DAS没有帮助。

此外,您不希望在请求之间保留任何Notes后端对象。数据库,视图,文档等实例都与会话相关联。通常会话在请求结束时被回收,因此其他后端对象也随之而来。

本文经用户投稿或网站收集转载,如有侵权请联系本站。

发表评论

0条回复