kettle javascript脚本解析对象 js脚本编写教程

每个成功的人背后,一定都做过勇敢而孤独的决定。放弃不难,坚持下来才爽~我们都知道Kettle是用java语言开发的,Java类方法可以直接用JavaScript调用。所以有时候,我们可以为JavaScript定制一些方法。首先,在java项目中创建一个工具类在项目中,创建utils工具类,例如计算总...

每个成功的人背后,一定都做过勇敢而孤独的决定。

放弃不难,坚持下来才爽~

我们都知道Kettle是用java语言开发的,Java类方法可以直接用JavaScript调用。所以有时候,我们可以为JavaScript定制一些方法。

首先,在java项目中创建一个工具类

在项目中,创建utils工具类,例如计算总页数的方法。代码如下:

public class PaginationUtils {

/**

* 计算得到总页码

* @param totalRecords 总记录数

* @param pageSize 分页大小

* @return 总页码

*/

public static int

totalPage

(String totalRecords,String pageSize)

{

int totalPage=0;

try{

BigDeci***l records=new BigDeci***l(totalRecords);

BigDeci***l size=new BigDeci***l(pageSize);

BigDeci***l _tmp=records.add(size).subtract(new BigDeci***l(1));

BigDeci***l _tp=_tmp.divide(size).setScale(0,BigDeci***l.ROUND_HALF_UP);

totalPage=_tp.intValue;}catch (Exception e){

//error

}

return totalPage;

}

}

第二,部署和打包

工具方法开发完成后,可以通过mvn clean package -DskipTests命令进行打包,在目标目录下会生成一个jar文件。您需要将这个jar包放在kettle的lib目录中。如下图所示:

第三,编写JavaScript脚本

重启Kettle,创建一个新的JavaScript脚本。计算总页数的js代码如下:

//计算总页码

var totalPage=com.study.spring.Utils.PaginationUtils.totalPage(countBySql,pageSize);

其实就是在js代码中声明java类+方法。

但问题来了。kettle在运行这个JavaScript脚本时会提示以下错误:

不能编译 javascript: org.mozilla.javascript.Ec***Error: TypeError: Cannot call property totalPage in object [JavaPackage com.study.spring.Utils.PaginationUtils]. It is not a function, it is "object". (<cmd>#22)

根据错误信息,其实还是没有找到相关的类方法,就像没有把这个jar包…

四。常见问题解答

上面的错误是怎么回事?我也很惊讶。于是我用压缩工具查看了lib目录下的其他jar包结构,发现其他的都是这样的:

我刚才输入的jar包目录如下所示:

Com目录不在jar包的根路径中,所以自然地,你不能访问那个方法。

好了,问题的原因找到了,接下来说解决方法:

在pom.xml文件中添加:

<build>

<plugins>

<plugin>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-***ven-plugin</artifactId>

<configuration>

<skip>true</skip>

</configuration>

</plugin>

</plugins>

</build>

添加pom文件后的效果图如下:

jar包的内部结构也是:

成功!Com目录已经在jar包的根路径中。

用kettle的lib目录替换jar包,重启Kettle,再次通过javascripts调用自定义jar包。成功!

本文来自润情无声投稿,不代表舒华文档立场,如若转载,请注明出处:https://www.chinashuhua.cn/24/592359.html

打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
() 0
上一篇 06-15
下一篇 06-15

相关推荐

  • 抖音脚本文案如何写 掌握这六大诀窍

    如果你也想成为一名优秀的Tik Tok摄影师,那么你不妨看看如何成为一名优秀的Tik Tok文案。如果视频不出彩,一个好的文案或许能反转甘昆;在视频出彩的情况下,好的文案也能起到画龙点睛的作用。Tik Tok的拷贝呢?通常我们把Tik Tok的文案分为六类,分别是互动、叙述、悬疑、玩

    2023-07-26 13:51:02
    208 0
  • lol脚本哪里有卖稳定的 英雄联盟脚本

    带你走进LOL剧本的世界。你一举手,我就知道你要打哪里!在LOL中,拳头在发布游戏的时候从一开始就说这个游戏没有外挂或者一些作弊手段。然而,自S1以来,尽管漏洞很少,但出现的一切都是大事。不过相比其他游戏,Fist在这方面做得还不错,但目前出现的剧本却屡禁不止。那么打

    2023-07-26 11:44:01
    276 0
  • 脚本是什么东西,优秀分镜头脚本范例分享

    对于一些短视频创作团队来说,他们在开始拍摄短视频的时候,只是开始拍摄自己想到的东西,并没有拍摄前写剧本的概念。而小雨经常会遇到一些朋友问,短视频还需要写剧本吗?答案是肯定的,所以今天小宇就来告诉你一件事,什么是剧本。1,脚本的概念在电影和广告的制作中,剧本

    2023-07-23 07:02:01
    197 0
  • linux连接oracle数据库命令 shell连接oracle执行sql脚本

    使用静默安装,您需要先配置所有安装参数,然后直接执行安装过程,而不是手动选择配置。这一系列文章是分享作者在刚接触和学习Linux时的实践记录。内容主要包括Linux的入门、Web程序的一些理论概念,以及mysql数据库的简单安装和部署。希望能帮到一些初学者,少走弯路。注意:

    2023-07-22 23:25:01
    357 0

评论列表

联系我们

在线咨询: QQ交谈

邮件:admin@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信