Janino 编译异常:UDJC 步骤

Posted

技术标签:

【中文标题】Janino 编译异常:UDJC 步骤【英文标题】:Janino Compile Exception : UDJC step 【发布时间】:2015-12-10 20:34:06 【问题描述】:

提前感谢您的支持。

在 UDJC 步骤中,以下代码给了我 Janino 异常,

在 processRow 方法中

Hashtable hastable=getConfigData() // This method return Hashtable 

Set set=hashtable.get("ERROR_2001").keySet(); ---> //hashtable.get("ERROR_2001"), This returns another hashtable

例外: 名为“keySet”的方法未在任何封闭类或任何超类型中声明,也未通过静态导入声明

在论坛中,我找不到解决此问题的解决方案。我正在使用 JDK 1.7 和 PDI 5.1(最新下载)

【问题讨论】:

【参考方案1】:

AFAIK,你不能在 Janino 中使用泛型,所以 Janino 无法确定 hashtable.get("ERROR_2001") 方法返回的对象的确切类,所以它假定返回了 Object,它没有定义 keySet() 方法。 尝试将hashtable.get("ERROR_2001") 的结果转换为值类,包含在您的hashtable 集合中:

Hashtable errorEntry = (Hashtable) hashtable.get("ERROR_2001");
Set set = errorEntry.keySet(); 

【讨论】:

抱歉回复晚了。是的,我按照你说的做了同样的事情,所有的错误都消失了。

以上是关于Janino 编译异常:UDJC 步骤的主要内容,如果未能解决你的问题,请参考以下文章

使用 UDJC 在 Pentaho 中读取受密码保护的 PDF

72 java.lang.NoClassDefFoundError: org/codehaus/janino/InternalCompilerException

72 java.lang.NoClassDefFoundError: org/codehaus/janino/InternalCompilerException

我的 JDBC 程序编译成功但没有异常运行 [重复]

用 Kettle UDJC 组件实现用户行为组序列

异常-编译期异常和运行期异常的区别