我正在为 Pentaho DI / Kettle 4.4 开发一个自定义插件,并使用自定义验证和 XSLT jar 作为其中的一部分。
这些 jar 与插件的 jar 本身一起在 plugin.xml 中引用,并部署在与插件的 jar 相同的位置。
当我尝试在 Spoon GUI 中加载这个插件时,我可以看到并正常运行插件,直到我到达对外部 jar 的引用,然后我得到 ClassNotFOund 异常。
到目前为止,我已经尝试过以下操作但没有奏效:
- 将 expernal Jars 添加到 libext 文件夹,并期望它们会被自动拾取。- 失败的。未加载罐子。
- 将 -cp 命令行选项添加到 Spoon.bat 并指定 Jar 文件 - 不起作用。
- 打开 -verbose 选项并在输出中到处搜索,但忽略罐子。
- 将 Jars 部署在插件文件夹中插件的 Jar 文件旁边。- 无法识别罐子。
从插件内部,如果我动态加载(使用反射和 URL 类加载器),我可以强制加载 Jars,它可以这样工作,但我想要一个更简单的类路径修复。
我通过 XSL 扩展(XALAN-J Java 扩展)在 Jar 中引用的任何类仍然无法识别/加载,并且 XSL 在扩展调用开始时终止。
- 在谷歌和这个网站上搜索了类似的东西,但没有找到关于为什么 SPoon 行为如此不同并避免外部代码和内容的具体答案。
- 这里报告了一个类似的问题,尽管它太旧并且没有显示最终的结论性修复。我尝试了它所说的一切。http://forums.pentaho.com/archive/index.php/t-77190.html
请求某人帮助我确定丢失的内容。提前致谢,