在某些XPage应用程序中,我正在尝试利用作为Domino一部分安装的org.apache.commons.lang包。我将它添加到requires部分的plugin.xml中:
这允许我使用该包,并编译代码并成功运行它。我可以将设计刷新到测试数据库中,虽然我需要再次添加import语句,因为设计刷新过程不会更新plugin.xml,但这适用于我的开发服务器(8.5.2 FP3并且已经工作在8.5) .2 FP1也)。
但是,当我尝试在不同的服务器上运行相同的代码时,它会因org.apache.commons.lang的ClassDefNotFoundError而失败。这在许多不同的Domino版本和多个数据库上都失败了。如果我清理数据库并重建它,代码编译得很好,但在运行时仍然会抛出错误。
我的开发服务器的安装是在两个驱动器上进行分区的,但我不希望将导入添加到plugin.xml会在后台的某个地方存储文件路径。
我也尝试将jar导入我的数据库并将其作为引用库添加到构建路径中,但又获得了ClassDefNotFoundError。
任何关于原因或解决方案的想法都将被感激地接受。
答案 0 :(得分:1)
远非理想,但我在WebContent \ WEB-INF下创建了一个名为lib的文件夹,并将jar文件导入其中。此路径中的lib文件夹自动包含在构建路径中,因此该文件夹中的任何内容都将自动变为可用。与其他人交谈后,这可能会被另一个ClassLoader加载,因此不会与服务器版本冲突。这并不理想,但我知道有几个人正在为这个和其他Apache库问题寻找更好的解决方案,所以希望很快就会到来。当更好的解决方案可用时,我会添加评论。
答案 1 :(得分:0)
我的建议是创建一个空的XSP库来指定必要的依赖项,然后将其设置为全局库(换句话说,您不必将其显式设置为每个应用程序的依赖项)。这显然有点过头了,但几乎可以肯定有效。