【问题标题】:External jars in Lotus NotesLotus Notes 中的外部 jar
【发布时间】:2011-08-28 02:11:23
【问题描述】:
我通过将外部 Java 代码放置在 Java 代理中来测试它们。现在,我试图将 jar 文件放在我们服务器的文件系统中的 jvm/lib/ext 目录中。尚未在 notes.ini 中创建条目...
问题是,jar 文件存在于 2 个地方(在代理和服务器的文件系统中)......
这会导致notesExceptions吗?
我的代理因代理错误而失败:java.lang.VerifyError:
有谁知道问题是什么?
仅供参考:我们最终将从代理中移除 jars...这只是为了测试...
【问题讨论】:
标签:
file
jar
external
lotus-notes
【解决方案1】:
当您针对与运行时使用的库不同的库进行编译时,可能会发生 java.lang.VerifyError。
我怀疑外部jars编译字节码使用的jre版本与domino jre版本不兼容。尽管语法正确,但 jvm domino 使用的语义更改无法接受。如果您有权访问源代码,请检查编译它的 jre 版本。
【解决方案2】:
您的 Domino JRE 早于用于编译这些 JAR 文件的 JRE/JDK 版本。这是验证错误的原因。这些 JAR 文件的字节码无法通过 JRE 验证阶段,因为服务器 JRE 无法理解该代码。
在大多数情况下,没有必要将 jar 文件放置到服务器 jvm/lib/ext 文件夹中。
将这些 jar 嵌入到 Script Library/Java Agent 就足够了。
但也有例外,例如 DB2 jdbc 驱动程序,必须位于服务器 jvm/lib/ext 文件夹才能让 java 代理与 DB2 连接一起工作。