【问题标题】:Java NoClassDefFoundError initialization error after Lotus Domino upgrade from Version 6.5.3 to 8.5.2Lotus Domino 从版本 6.5.3 升级到 8.5.2 后 Java NoClassDefFoundError 初始化错误
【发布时间】:2014-08-17 11:29:53
【问题描述】:

我们已将 Lotus Domino 从版本 6.5.3 升级到 8.5.2, 升级后我们在调用 Java 方法时遇到初始化错误。

类保存在 d:\javaclasses 位置,并在 notes.ini 中创建一个条目,如下所示 JavaUserClasses=.;d:\javaclasses;d:\javaclasses\lib...等

对 java 的所有调用都适用于 6.5.3 版,但它不适用于 8.5.2。

我们没有更改任何 java 文件,只是从旧版本复制到同一位置的新版本服务器

注意:d:\javaclasses 类使用JDK1.3编译,Domino 6.5.3版本使用JDK1.3原生库, Domino 版本 8.5.2 使用内置的 JDK1.6 本机库

堆栈跟踪供参考。

java.lang.NoClassDefFoundError: com.centtric.td.cprm.AppSource (initialization failure)
 at java.lang.J9VMInternals.initialize(J9VMInternals.java:140)
 at com.centtric.td.cprm.Coverage.<init>(Coverage.java:87)
 at com.centtric.td.cprm.Coverage.find(Coverage.java:572)
 at CPRMLib.deleteCoverage(CPRMLib.java:913)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:48)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
 at java.lang.reflect.Method.invoke(Method.java:600)
 at lotus.domino.JavaConnectInvoker.invoke(Unknown Source)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:48)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
 at java.lang.reflect.Method.invoke(Method.java:600)
 at lotus.domino.JavaConnectLoader.invoke(Unknown Source)
Caused by: 
java.lang.NullPointerException
 at com.centtric.connectors.JDBCConnector.closeStatements(JDBCConnector.java:484)
 at com.centtric.connectors.JDBCConnector.closeAll(JDBCConnector.java:431)
 at com.centtric.td.cprm.AppSource.init(AppSource.java:70)
 at com.centtric.td.cprm.AppSource.get(AppSource.java:79)
 at com.centtric.td.cprm.AppSource.<clinit>(AppSource.java:32)
 at java.lang.J9VMInternals.initializeImpl(Native Method)
 at java.lang.J9VMInternals.initialize(J9VMInternals.java:200)

【问题讨论】:

  • 看起来类加载器找到了com.centtric.td.cprm.AppSource。在初始化该类时,com.centtric.connectors.JDBCConnector.closeStatements 方法抛出了 NullPointerException(在第 484 行)。您能告诉我们更多关于 com.centtric 课程的信息吗?您有权访问源代码吗?查看 JDBCConnector 第 484 行的代码会有所帮助。

标签: java upgrade lotus-domino


【解决方案1】:

很难说,但看起来您的新 JVM 要么缺少一些本机库,要么没有与旧 JVM 相同的类路径。你确定ini文件格式没有改变吗?

J9VMInternals 是 IBM 特定的类,负责处理类加载和其他内容。

【讨论】:

    猜你喜欢
    • 2012-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-26
    • 2013-06-17
    • 2013-11-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多