【问题标题】:Use XspLibrary (OSGI plugin) in Domino Designer在 Domino Designer 中使用 XspLibrary(OSGI 插件)
【发布时间】:2014-08-04 11:55:19
【问题描述】:

我已经构建了一个 osgi 插件来包装现有的 jar 文件。我一直在关注this guide

构建插件后,我通过更新站点部署它。我使用一个小部件将插件导入到 domino 设计器中。

在“文件 > 应用程序 > 应用程序管理”中,我可以验证 插件已加载(即它显示在 /workspace/applications/eclipse)

现在我构建了一个新的 nsf,我可以在 xsp 属性中选择我的插件作为 Xsp 库。然后它开始变得奇怪:如果我在 domino 设计器中打开插件项目,我也可以使用 plug-in only 中的所有导出类。

如果我关闭插件项目,我会得到两个编译错误:

  1. “无法解析StringUtils”
  2. “无法解析导入的 org.apache.commons.lang3”

有时我也会收到以下错误:

  • “项目未构建,因为构建路径不完整。找不到...的类文件。”

现在有人知道为什么会出现这些错误吗?正如我已经提到的:在设计器中打开插件项目可以解决所有错误。

你的 删除

【问题讨论】:

  • 您能在 xsp.properties 文件中“导入”插件吗?我什至做不到。
  • 是的,我可以在 xsp.properties 文件中选择插件。无论插件项目是否打开,都可以将插件添加到 xsp 属性中。
  • 嗨,Detlef。有趣的观察。我将不得不更详细地研究这一点——在写这篇文章时,我没有对插件项目做任何特别的事情(它在另一个工作集中),所以设计师可能只是在我没有意识到的情况下“帮助”了我。 ...
  • 嗨,John - 如果您在 Designer 中开发插件项目并且该项目是打开的,那么它将位于您当前的“工作区”中,这是一个 Eclipse 概念。因此,当设计器 (eclipse PDE) 尝试解决您的 XPages 应用程序的插件依赖关系时,它会在您当前的“工作区”中找到它(无论它是否在不同的工作集中),而不是查看已安装的设计器插件。这意味着它可以从那里成功找到 commons.lang3 jar。如果你关闭插件项目(在包资源管理器中右键单击关闭项目),它应该使用你安装的插件。

标签: osgi xpages


【解决方案1】:

您需要在安装后将插件“解包”,此时您的包装 jar 隐藏在您的插件 jar 中。需要将它们解包,以便 Domino Designer 使用它们。

大概您创建了一个功能项目来安装插件?回到功能项目和插件列表,选择插件,然后勾选“安装后解压插件存档”旁边的复选框

在您的更新站点中,清除您之前构建的插件和功能,然后将这个新功能重新构建到更新站点中。

在安装新版本的功能之前,最好在设计器中卸载旧版本: 文件 -> 应用程序 -> 应用程序管理 然后在左侧窗格中选择功能,然后从右侧窗格中的可用任务中卸载。

然后从您新建的更新站点重新安装,(或像以前一样通过小部件部署)

安装后,您可以检查插件安装到的文件系统位置:

<NotesData>/workspace/applications/eclipse/plugins

并验证插件是否已解压缩到文件夹中,而不仅仅是一个 jar。

另外,在包资源管理器中,如果您随后打开正在使用您的 XspLibrary/Plugin 的 XPages 应用程序,您应该能够在 插件列表中看到您的插件在依赖项中,插件旁边的图标应该是文件夹而不是“jar”图标

【讨论】:

  • 嗨,Cameron,这与我看到的关于必须为服务器和设计器拥有两个不同插件的讨论相关联很有趣。据我了解,您不希望它在服务器上解压吗?那么你需要两个不同的服务器和设计器插件吗? /约翰
  • 嗨,John,我不知道为什么不在服务器上解压它,你能分享一下吗?如果您通过 NSF UpdateSite 安装,我认为插件不会命中文件系统,也许这个 unpack 设置在通过 NSF Update Site 部署时无关紧要?但是,如果您确实想为设计器和服务器进行不同的部署,那么您不需要 2 个插件,相反,您将创建 2 个不同的功能,其中都包含插件(1 个带解包,1 个不带 - 和 2 个更新站点)。跨度>
  • 您好,Cameron,感谢您的解决方案;它就像一个魅力,不需要服务器的第二个插件。
  • 嗨,卡梅伦。我可能只是误解了它。这是关于插件开发的讨论(略有不同) - 但我认为它是在纯 Eclipse 环境中(它可能只与一个安装有关)。我不知道确切的细节(Nathan Freemann 和其他人讨论过)。我会根据您上面的建议来调整文章(尽管目前需要一点时间来完成)。非常感谢您的洞察力! /约翰
  • 好的,我的文章已经更新了这些有价值的信息。感谢您指出 ;-) --> dalsgaard-data.eu/blog/wrap-an-existing-jar-file-into-a-plug-in
【解决方案2】:

这两个错误都意味着您需要安装 xsplibrary 的依赖项,即 apache commons lang 3.x。它以 OSGi 包的形式提供,因此您可以简单地将其添加到目标平台。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多