簡體   English   中英

從Pentaho Kettle調用Java庫

[英]Calling A Java Library From Pentaho Kettle

我已經開發了一個導出到.jar庫的Java類,該庫將由Pentaho Kettle“修改后的Java腳本”調用。 .jar是在Eclipse中使用JDC Compliance 1.7編譯的。

當我嘗試在“修改后的Java腳本”中使用此類時,出現錯誤:ReferenceError:未定義“ xeroCallPackage”。 到目前為止,我已經嘗試了很多事情,但運氣不佳。

我的文件xeroCallPackage.jar與Pentaho(.. \\ data-integration \\ lib)中其他* .jar文件位於路徑中

有關信息:

精簡后的Java庫代碼在這里:

package xeroCallPackage;

import java.io.IOException;
import java.net.URISyntaxException;
import java.util.Collections;
import java.util.Map;

public class xeroURLCall {

    public String getResponse(String CONSUMER_KEY, String CONSUMER_PRIVATE_KEY, String URL) throws IOException, OAuthException, URISyntaxException { 

        // stripped out code here
        return response.readBodyAsString();
    }

}

精簡的Pentaho“修改后的Java腳本”在這里:

var CONSUMER_KEY = "ffffff";
var CONSUMER_PRIVATE_KEY = "aaaaa";
var URL = "https://gggggggg.rrrrr.wwww";

var ResponseAsString;

ResponseAsString = new     xeroCallPackage.xeroURLCall.getResponse(CONSUMER_KEY,CONSUMER_PRIVATE_KEY,URL);

您將不得不把org作為最高級的包,或者在類的全限定名前加上Packages

因此,在您的情況下,可用於從Spoon調用的類的完全限定名稱為Packages.xeroCallPackage.xeroURLCall

除此之外,提供的JavaScript代碼不起作用(但這可能只是因為代碼減少了)。 您必須先創建一個xeroURLCall對象,然后在該對象上調用getResponse方法:

var call = new Packages.xeroCallPackage.xeroURLCall(...);
var responseAsString = call.getResponse(CONSUMER_KEY,CONSUMER_PRIVATE_KEY,URL);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM