0

Java クラスを介して Pentaho メタデータ ドメインを作成しようとしています。Pentaho automodel API を使用してデータ モデルを作成すると、例外が発生します。

KettleEnvironment.init();(私が実行した)以外の初期化は必要ですか?

例外を解決する方法を提案してください:

根本原因: http://trac.spatialytics.com/geokettle/browser/trunk/src-core/org/pentaho/di/core/Props.javaの Props.java から参照されるコード。ただし、 Props コンストラクターは public ではなく保護されているため、インスタンス化できません。

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

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

ただし、 Props コンストラクターは public ではなく保護されているため、インスタンス化できません。例外は次のとおりです。

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)
4

2 に答える 2

1

はい、さらに、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 フォルダーが利用可能であることを確認することもできます。

于 2014-06-11T04:47:00.240 に答える
1

動作しますが、それ以降のバージョンでは以下が必要です:

PropsUI.init(new Display(), System.getenv("user.home") + "/.pentaho-meta/.pme-rc");
于 2017-08-01T18:14:07.757 に答える