OSGi 更新站点失败并出现 "null" 错误

OSGi update site fails with "null" error

有时,在服务器重新启动后,所有应用程序都会因为缺少 ExtLib 库而失败。它们应该在从 NSF 更新站点的 HTTP 启动期间安装。服务器日志显示:

HTTP JVM: CLFAD0330I: NSF Based plugins are being installed in the OSGi runtime. For more information please consult the log

HTTP JVM: null. For more detailed information, please consult error-log-0.xml located in /data/domino/workspace/logs

... repeated ~30x

错误日志的内容-0.xml 没有帮助 - 失败仅显示为空行。值得庆幸的是,还有另一个日志文件 startup.log 包含问题的堆栈跟踪:

!ENTRY org.eclipse.osgi 4 0 2015-04-24 09:20:02.450 !MESSAGE Error installing bundle: osginsf:update/extlib.nsf/E7D8A0430DEAFDF2C1257B4F003FF202/com.ibm.xsp.extlib.core_8.5.3.20130315-0724.jar !STACK 0 java.io.IOException at com.ibm.domino.internal.protocol.osginsf.OSGiNSFUrlConnection.getInputStream(OSGiNSFUrlConnection.java:133) at java.net.URL.openStream(URL.java:1022) at org.eclipse.core.runtime.adaptor.EclipseStarter.installBundles(EclipseStarter.java:1105) at org.eclipse.core.runtime.adaptor.EclipseStarter.loadBasicBundles(EclipseStarter.java:646) at org.eclipse.core.runtime.adaptor.EclipseStarter.access(EclipseStarter.java:623) at org.eclipse.core.runtime.adaptor.EclipseStarter.bundleChanged(EclipseStarter.java:308) at

... stripped ...

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) at java.lang.reflect.Method.invoke(Method.java:611) at com.ibm.domino.http.bootstrap.osgi.LaunchRCP.startRCP(LaunchRCP.java:342) at com.ibm.domino.http.bootstrap.osgi.LaunchRCP.launchOSGIFramework(LaunchRCP.java:172) at com.ibm.domino.http.bootstrap.BootstrapOSGIClassLoader.launchOSGIFramework(BootstrapOSGIClassLoader.java:79) at com.ibm.domino.http.bootstrap.BootstrapOSGIClassLoader.loadClass(BootstrapOSGIClassLoader.java:63) at java.lang.ClassLoader.loadClass(ClassLoader.java:638) at com.ibm.domino.http.bootstrap.BootstrapClassLoader.findClass(BootstrapClassLoader.java:79)

!ENTRY org.eclipse.update.configurator 4 0 2015-04-24 09:20:02.762

!MESSAGE D:\Lotus\Domino\data\domino\workspace.config\domino\eclipse\plugins\plugins is not a valid plugins directory.

引起我注意的是最后一行-提到的插件目录不存在(一个额外的'/plugins'目录)。

唯一的解决方法是从头开始重新创建更新站点(删除所有内容并重新导入本地更新站点)。

顺便说一句,我发现很旧 discussion,在 ExtLib 项目站点上没有解决方案。

更新失败的原因是什么?我分不清IO异常是文件路径错误还是死URL更新站点(网络配置错误) ).

通过增加 Domino 二进制文件的磁盘大小解决了问题 - 由于 Windows 目录的增长(Windows 更新),它超出了 space(并且没有人注意到)。数据和 translog 目录使用不同的驱动器,因此服务器 运行 没有 "out of space" 错误。

似乎在磁盘写入失败时抛出了 IO 异常。