最近遇到了一个问题,在Kettle的Job里面,当为转换组件选择一个具体的转换文件时,报错如下:
正常的界面应该是这样子:
到网上找了很久也没有找到相关的报错资料,于是只能自己摸索.
大概思路如下:
首先在相同的服务器上,重新解压PDI的安装文件到其他的路径,打开新安装的Kettle,发现是可以正常选择到文件的,那么可以排除掉服务器或者网络相关的问题,将问题定位到Kettle的配置文件自身.
反复的对比新旧两版的PDI文件(由于文件数巨大,首先对比两边文件的数量,然后对比两边文件的大小,忽略掉一些日志或者缓存文件.)
报错原因:
最终定位到D:\pdi-ce-9.1.0.0-324\data-integration\system\karaf\etc-spoon文件夹下的org.ops4j.pax.web.cfg配置文件.
打开发现原来的org.ops4j.pax.web.cfg配置文件比刚解压的新版配置文件中少了以下几行:
org.osgi.service.http.port=${org.pentaho.osgi.service.http.port}
# SECURITY FIX
# Enables additional Jetty config to white list the loop back address 127.0.0.1 so thin dialogs
# cannot be accessed from outside the local machine
org.ops4j.pax.web.config.file=${karaf.base}/etc-spoon/jetty.xml
可以看出这里缺少了Karaf web config指向jetty.xml文件的重要代码(目前还不清楚是什么原因引起的).
解决问题:
将原来的org.ops4j.pax.web.cfg配置文件做个备份,然后将新解压的配置文件放到相同的路径下,重新打开Spoon,发现可以正常使用了.