Xpages 找不到Domino9更新站点osgi类

Xpages 找不到Domino9更新站点osgi类,xpages,lotus-domino,Xpages,Lotus Domino,我正在尝试使用Updatesite.nsf将jar部署到测试服务器。在本例中,我可以使用httposgiss命令在服务器控制台上看到jdbc驱动程序插件。但是当我使用它时,我得到了一个java.lang.ClassNotFoundException com.mysql.jdbc.driver。我错过了什么或做错了什么。谢谢直接的答案是调用Class.forName的代码需要在其类加载器中以某种方式包含MySQL驱动程序,而XPage或NSF Java中默认情况下不会包含这种驱动程序 要稍微扩展一

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

直接的答案是调用
Class.forName
的代码需要在其类加载器中以某种方式包含MySQL驱动程序,而XPage或NSF Java中默认情况下不会包含这种驱动程序

要稍微扩展一下:

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

如果您试图从另一个插件调用它,那么另一个插件应该有一个
Require Bundle
Import Package
条目将其引入

默认情况下,如果将该类放入
jvm/lib/ext
中,NSF将可以使用该类,尽管这显然放弃了基于OSGi的部署的细节


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

如果我理解正确,如果我想使用OSGi部署,我需要为jar构建导入包并在更新站点中重新导入?这取决于你想用它做什么。如果您的目的是使驱动程序可用于XPages JDBC组件,则不需要从XPages代码本身内部加载驱动程序。如果要加载它并手动执行JDBC工作,则需要将其部署到文件系统或使其成为XPages库插件的一部分。