gpt4 book ai didi

java - 从 Pentaho Kettle 调用 Java 库

转载 作者:行者123 更新时间:2023-11-30 11:21:28 24 4
gpt4 key购买 nike

我开发了一个导出到 .jar 库中的 java 类,它将被 Pentaho Kettle“修改后的 java 脚本”调用。 .jar 在 Eclipse 中编译,JDC Compliance level 1.7。

当我尝试在“修改后的 java 脚本”中使用此类时,出现错误:ReferenceError:“xeroCallPackage”未定义。到目前为止,我已经尝试了很多事情但运气不佳。

我的文件 xeroCallPackage.jar 与 Pentaho 中的其他 *.jar 文件位于路径中 (..\data-integration\lib)

信息:

精简(为简单起见)的 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);

关于java - 从 Pentaho Kettle 调用 Java 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22192553/

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