我们有几个要部署到 8.5.3 Domino 服务器的 .jar 文件。
控制台命令“ tell http osgi diag <bundle name>
”有效,并向我显示捆绑包在那里。但是,当我启动一个具有来自 jar 的导入语句的 Notes Java 代理时,多米诺控制台会为这些类打印NoClassDefFoundError错误。
来自最初称为 saxon9he.jar 的 .jar 的示例:
[1834:0036-1E84] 24.08.2012 11:21:14 HTTP JVM: Exception in thread "AgentThread:JavaAgent"
[1834:0037-1E84] 24.08.2012 11:21:14 HTTP JVM: java.lang.NoClassDefFoundError:net.sf.saxon.Version
[1834:0039-1E84] 24.08.2012 11:21:14 HTTP JVM: at JavaAgent.NotesMain(Unknown Source)
[1834:003B-1E84] 24.08.2012 11:21:14 HTTP JVM: at lotus.domino.AgentBase.runNotes(Unknown Source)
[1834:003D-1E84] 24.08.2012 11:21:14 HTTP JVM: at lotus.domino.NotesThread.run(Unknown Source)
[1834:003F-1E84] 24.08.2012 11:21:14 HTTP JVM: Caused by:
[1834:0040-1E84] 24.08.2012 11:21:14 HTTP JVM: java.lang.ClassNotFoundException: net.sf.saxon.Version
[1834:0042-1E84] 24.08.2012 11:21:14 HTTP JVM: at lotus.domino.AgentLoader.loadClass(Unknown Source)
[1834:0044-1E84] 24.08.2012 11:21:14 HTTP JVM: at java.lang.ClassLoader.loadClass(ClassLoader.java:619)
[1834:0046-1E84] 24.08.2012 11:21:14 HTTP JVM: ... 3 more
其中一些 .jar 文件是我们自己完全编写的,而另一些是由开源项目贡献的。这些罐子。在“WebContent”的 Domino Designer 中的 Java 视图中创建的几个 Java 代理、XPage 和类中仅通过导入指令使用文件。我们在各种设计元素中使用这些包,并且有大约 100 个 domino 服务器必须获取这些文件和补丁,这就是为什么我们不想将它们放入每个它们的本地文件系统中。
到目前为止,这就是我为获得罐子所做的工作。文件到我的多米诺服务器:
我已经进口了这些罐子。将我的 Eclipse 4.2 客户端中的文件放入一个新的“现有 Jar 中的插件项目”并配置导入和导出包。(我什至尝试从这些 jar.Files 制作 Bnd-Projects 以获得适当的 OSGI-ready Manifest-files,遗憾的是它并没有做得更好)之后我创建了一个包含插件的功能项目。最后,我将该功能导入到我的 Eclipse 中的一个新的 Update-Site 项目并构建它。
我在从模板“StdEclipseUpdateSite”(版本 8.5.3 (04.03.2011) 创建的数据库中选择了这个 site.xml。在 Notes.ini 中通过我的 8.5.3 Domino 服务器 x64 上的“OSGI_HTTP_DYNAMIC_BUNDLES”参数引用了这个数据库出于测试目的在我的 Windows 7 x64 上本地运行。
我已经在这个问题上工作了几天,阅读了有关 osgi 的信息,并在谷歌上搜索了很多关于类似问题的信息,但我自己无法完成这项工作。非常感谢任何帮助。