未找到 Domino 9 更新站点 osgi class

Domino 9 Update site osgi class not found

我正在尝试使用 Updatesite.nsf 将 jar 部署到测试服务器。在这种情况下,我可以使用 http osgi ss 命令在服务器控制台上看到 jdbc 驱动程序插件。但是当我使用它时,我得到一个 java.lang.ClassNotFoundException com.mysql.jdbc.driver。我错过了什么或做错了什么。谢谢

直接的答案是调用 Class.forName 的代码需要以某种方式在其 class 加载程序中包含 MySQL 驱动程序,XPage 或 in-NSF Java默认没有。

稍微扩展一下:

如果您尝试从 XPage 或 NSF 中的 Java 代码调用它,它必须是来自另一个插件的 XPages 库的一部分,而该插件又依赖于并重新导出驱动程序插件。

如果你想从另一个插件调用它,那个插件应该有一个 Require-BundleImport-Package 条目来引入它。

如果您将 class 插入 jvm/lib/ext,默认情况下 NSF 将可以使用 class,尽管这无疑会放弃基于 OSGi 的部署的优点。

它适用于 XPages JDBC 支持的原因是向导在 Designer 中创建的包装插件包含一个特殊的扩展点,用于向需要它的 ExtLib 代码提供驱动程序 class ,但它们不会自动对 XPages 应用程序本身可用。