从Pentaho Ketter调用Java库

从Pentaho Ketter调用Java库,java,class,package,pentaho,kettle,Java,Class,Package,Pentaho,Kettle,我已经开发了一个导出到.jar库中的java类,该库将由Pentaho Ketter“修改的java脚本”调用。jar是在Eclipse中编译的,JDC遵从性级别为1.7 当我试图在“修改的java脚本”中使用这个类时,我得到一个错误:ReferenceError:“xeroCallPackage”未定义。到目前为止,我已经尝试了很多事情,但运气不太好 我的文件xeroCallPackage.jar与Pentaho(..\data integration\lib)中的其他*.jar文件位于同一路

我已经开发了一个导出到.jar库中的java类,该库将由Pentaho Ketter“修改的java脚本”调用。jar是在Eclipse中编译的,JDC遵从性级别为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代码将无法工作(但可能这只是因为精简了代码)。您必须首先创建一个
XourlCall
对象,然后在该对象上调用
getResponse
方法:

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