Domino OSGI插件 - 无法找到设计说明

时间:2015-03-27 17:04:59

标签: java lotus-domino lotus

我正在尝试创建一个 Domino OSGI插件,它公开了一个简单的Hello World servlet。 为此,我在eclipse中创建了一个插件项目(包含web.xml和servlet),一个包含此插件和更新的站点项目的功能项目。

在此之后,我使用'Eclipse Update Site'作为模板(名称RestDemoUpdateSite.nsf)在Domino设计器中创建了一个应用程序。 在Domino管理员中打开此应用程序后,我成功导入了我的eclipse更新站点。

最后我将RestDemoUpdateSite.nsf复制到该文件夹​​中 -  C:\ Program Files \ IBM \ Domino \ data并在notes.ini中添加了OSGI_HTTP_DYNAMIC_BUNDLES = RestDemoUpdateSite.nsf行。

链接http://<> /RestDemoUpdateSite.nsf正常打开

对http://<> /RestDemoUpdateSite.nsf/api/的GET请求给出了json响应

{
  "services":[
    {
      "name":"Data",
      "enabled":false,
      "version":"9.0.1",
      "href":"\/RestDemoUpdateSite.nsf\/api\/data"
    },
    {
      "name":"Calendar",
      "enabled":false,
      "version":"9.0.1",
      "href":"\/RestDemoUpdateSite.nsf\/api\/calendar"
    },
    {
      "name":"Core",
      "enabled":true,
      "version":"9.0.1",
      "href":"\/RestDemoUpdateSite.nsf\/api\/core"
    }
  ]
}

对我的servlet的GET请求http://<> /RestDemoUpdateSite.nsf/serviceapi/student给出了错误

HTTP Web服务器:找不到设计说明 - serviceapi / student [/RestDemoUpdateSite.nsf/serviceapi/student]匿名

任何可能出错的建议或提示都会有很大的帮助。

谢谢

1 个答案:

答案 0 :(得分:0)

第一步是确保OSGi框架正在加载您的插件。执行以下服务器控制台命令:

tell http osgi ss {bundle.name}

例如,tell http osgi ss com.ibm.domino.services列出了与给定名称匹配的所有插件。该列表告诉您插件是处于活动状态,已解决,已安装等等。

假设您的插件正在加载,下一步是确保正确定义您的servlet。您说过包含了一个web.xml文件,但OSGi servlet通常在plugin.xml中定义。他们实施org.eclipse.equinox.http.registry.servlets扩展。您可以在these slides中找到更多详细信息。请参阅“创建,部署和调试简单servlet”一节。