Domino OSGI 插件 - 找不到设计说明

Domino OSGI plugin - Couldn't find design note

我正在尝试创建一个 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

link 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 http://<>/RestDemoUpdateSite 的 GET 请求。nsf/serviceapi/student 给出错误

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

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

谢谢

第一步是确保您的插件正在由 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 中找到更多详细信息。请参阅以 "Creating, deploying & debugging a simple servlet" 开头的部分。