gpt4 book ai didi

java - 通过API创建Pentaho元数据域: Exception 'Properties ... not initialised!'

转载 作者:行者123 更新时间:2023-12-02 06:44:50 26 4
gpt4 key购买 nike

我正在尝试通过 Java 类创建 Pentaho 元数据域。当使用 Pentaho automodel API 创建数据模型时,我遇到了异常。

是否需要除KettleEnvironment.init();(我已执行)之外的初始化?

请建议如何解决异常:

根本原因:从 Props.java 引用的代码 http://trac.spatialytics.com/geokettle/browser/trunk/src-core/org/pentaho/di/core/Props.java 。但是 Props 构造函数是 protected 的,而不是 public 的,所以我无法实例化它。

public static Props getInstance()
{
if (props!=null) return props;

throw new RuntimeException("Properties, Kettle systems settings, not initialised!");
}

但是 Props 构造函数是 protected 的,而不是 public 的,所以我无法实例化它。异常(exception)是:

Exception in thread "main" org.pentaho.pms.core.exception.PentahoMetadataException:     java.lang.RuntimeException: Properties, Kettle systems settings, not initialised!
at org.pentaho.metadata.automodel.AutoModeler.generateDomain(AutoModeler.java:127)
at org.abc.poc.AutoModelerScenario.<init>(Unknown Source)
at org.abc.poc.MyApplication.main(Unknown Source)
Caused by: java.lang.RuntimeException: Properties, Kettle systems settings, not initialised!
at org.pentaho.di.core.Props.getInstance(Props.java:229)
at org.pentaho.pms.util.Settings.getBusinessTableIDPrefix(Settings.java:46)
at org.pentaho.metadata.util.Util.proposeSqlBasedLogicalTableId(Util.java:124)
at org.pentaho.metadata.automodel.AutoModeler.createBusinessTable(AutoModeler.java:157)
at org.pentaho.metadata.automodel.AutoModeler.generateDomain(AutoModeler.java:121)

最佳答案

是的,除了KettleEnvironment.init();之外,您还需要调用org.pentaho.di.ui.core.PropsUI.init(Display d, String filename)。例如

PropsUI.init(new Display(), System.getenv("user.home") + "/.kettle/.spoonrc");

您还可以确保运行代码时所有 Pentaho ui\images 文件夹都可用。

关于java - 通过API创建Pentaho元数据域: Exception 'Properties ... not initialised!' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18765374/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com