通过Kettle自定义jar包供javascript使用


Posted in Javascript onJanuary 29, 2020

这篇文章主要介绍了通过Kettle自定义jar包供javascript使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

我们都知道 Kettle 是用 Java 语言开发,并且可以在 JavaScript 里面直接调用 java 类方法。所以有些时候,我们可以自定义一些方法,来供 JavaScript 使用。

一、在 java 项目中创建工具类

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

public class PaginationUtils {

 /**
  * 计算得到总页码
  * @param totalRecords 总记录数
  * @param pageSize 分页大小
  * @return 总页码
  */
 public static int totalPage(String totalRecords,String pageSize){
  int totalPage=0;
  try{
   BigDecimal records=new BigDecimal(totalRecords);
   BigDecimal size=new BigDecimal(pageSize);
   BigDecimal _tmp=records.add(size).subtract(new BigDecimal(1));
   BigDecimal _tp=_tmp.divide(size).setScale(0,BigDecimal.ROUND_HALF_UP);
   totalPage=_tp.intValue();
  }catch (Exception e){
   //error
  }
  return totalPage;
 }
}

二、部署打包

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

通过Kettle自定义jar包供javascript使用

三、编写 JavaScript 脚本

重启 Kettle ,新建 JavaScript 脚本,计算总页码的 js 代码如下所示:

//计算总页码
var totalPage=com.study.spring.Utils.PaginationUtils.totalPage(countBySql,pageSize);

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

但是问题来了,kettle 在运行这段 JavaScript 脚本的时候,提示下面这样的错误:

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

根据错误信息来看,其实还是没有找到相关类方法,和没放这个 jar 包一样...

四、FAQ

上面这个错误究竟是怎么回事呢?我也很奇怪。于是我就用压缩工具也看了看 lib 目录下的其它 jar 包结构,发现人家都是这样式的:

通过Kettle自定义jar包供javascript使用

而我刚才打的 jar 包目录是这样子的:

通过Kettle自定义jar包供javascript使用

com 目录并没有在 jar 包的根路径下,自然是访问不到那个方法。

好,问题产生的原因找到了,然后再说一下解决办法:

在 pom.xml 文件中添加:

<build>
  <plugins>
    <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
      <configuration>
        <skip>true</skip>
      </configuration>
    </plugin>
  </plugins>
</build>

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

通过Kettle自定义jar包供javascript使用

再次打成的 jar 包内部结构为:

通过Kettle自定义jar包供javascript使用

成功!com 目录已经在 jar 包的根路径下了。

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
IE8提示Invalid procedure call or argument 异常的解决方法
Sep 30 Javascript
js获取上传文件大小示例代码
Apr 10 Javascript
JavaScript实现防止网页被嵌入Frame框架的代码分享
Dec 29 Javascript
实例详解jQuery表单验证插件validate
Jan 18 Javascript
JS判断字符串字节数并截取长度的方法
Mar 05 Javascript
详解JS-- 浮点数运算处理
Nov 28 Javascript
对比分析Django的Q查询及AngularJS的Datatables分页插件
Feb 07 Javascript
详解Node项目部署到云服务器上
Jul 12 Javascript
JavaScript解析机制与闭包原理实例详解
Mar 08 Javascript
element实现合并单元格通用方法
Nov 13 Javascript
javascript实现贪吃蛇小游戏
Jul 28 Javascript
分享几个JavaScript运算符的使用技巧
Apr 24 Javascript
用js限制网页只在微信浏览器中打开(或者只能手机端访问)
Dec 24 #Javascript
vue引用外部JS的两种种方法
Jan 28 #Javascript
Java Varargs 可变参数用法详解
Jan 28 #Javascript
关于引入vue.js 文件的知识点总结
Jan 28 #Javascript
JS简单表单验证功能完整示例
Jan 26 #Javascript
JS实现的定时器展示简单秒表、页面弹框及跳转操作完整示例
Jan 26 #Javascript
js常用方法、检查是否有特殊字符串、倒序截取字符串操作完整示例
Jan 26 #Javascript
You might like
Breeze 文章管理系统 v1.0.0正式发布
2006/12/14 PHP
PHP函数之日期时间函数date()使用详解
2013/09/09 PHP
php上传图片之时间戳命名(保存路径)
2014/08/15 PHP
PHP实现新型冠状病毒疫情实时图的实例
2020/02/04 PHP
window.onload 加载完毕的问题及解决方案(上)
2009/07/09 Javascript
jquery动画4.升级版遮罩效果的图片走廊--带自动运行效果
2012/08/24 Javascript
JavaScript中使用typeof运算符需要注意的几个坑
2014/11/08 Javascript
JSON与XML优缺点对比分析
2015/07/17 Javascript
JavaScript脚本判断蜘蛛来源的方法
2015/09/22 Javascript
prototype与__proto__区别详细介绍
2017/01/09 Javascript
JavaScript自定义分页样式
2017/01/17 Javascript
node.js中EJS 模板快速入门教程
2017/05/08 Javascript
ReactNative之键盘Keyboard的弹出与消失示例
2017/07/11 Javascript
JavaScript实现数值自动增加动画
2017/12/28 Javascript
解决Webpack 热部署检测不到文件变化的问题
2018/02/22 Javascript
jQuery+ajax读取json数据并按照价格排序示例
2018/03/28 jQuery
小程序云开发部署攻略(图文教程)
2018/10/30 Javascript
ES6 Symbol数据类型的应用实例分析
2019/06/26 Javascript
Java Varargs 可变参数用法详解
2020/01/28 Javascript
Openlayers绘制地图标注
2020/09/28 Javascript
python 动态生成变量名以及动态获取变量的变量名方法
2019/01/20 Python
python利用selenium进行浏览器爬虫
2019/04/25 Python
Python搭建Spark分布式集群环境
2019/07/05 Python
python 实现按对象传值
2019/12/26 Python
初学者学习Python好还是Java好
2020/05/26 Python
Python 2.6.6升级到Python2.7.15的详细步骤
2020/12/14 Python
史泰博(Staples)中国官方网站:办公用品一站式采购
2016/09/05 全球购物
保证书范文大全
2014/04/28 职场文书
广播体操比赛口号
2014/06/10 职场文书
新婚姻法离婚协议书范文
2014/11/30 职场文书
培训通知书模板
2015/04/17 职场文书
2015年共青团工作总结
2015/05/15 职场文书
惊天动地观后感
2015/06/10 职场文书
信息技术研修心得体会
2016/01/08 职场文书
用Python爬取某乎手机APP数据
2021/06/15 Python
浅谈@Value和@Bean的执行顺序问题
2021/06/16 Java/Android