<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Kettle自定義jar包供javascript使用

      我們都知道 Kettle 是用 Java 語言開發(fā),并且可以在 JavaScript 里面直接調(diào)用 java 類方法。所以有些時(shí)候,我們可以自定義一些方法,來供 JavaScript 使用。

      本篇文章有參考自:https://www.xiaominfo.com/2019/08/13/kettle-12/

      一、在 java 項(xiàng)目中創(chuàng)建工具類

      在項(xiàng)目中,創(chuàng)建 utils 工具類,比如 計(jì)算總頁碼 的一個(gè)方法。代碼如下:

      public class PaginationUtils {
      
        /**
         * 計(jì)算得到總頁碼
         * @param totalRecords 總記錄數(shù)
         * @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;
        }
      }
      

      二、部署打包

      工具類方法開發(fā)完畢后,可通過 mvn clean package -DskipTests 命令進(jìn)行打包,在 target 目錄下,會(huì)生成一個(gè) jar 文件。需要將這個(gè) jar 包放到 kettle 的 lib 目錄下。如下圖所示:

      三、編寫 JavaScript 腳本

      重啟 Kettle ,新建 JavaScript 腳本,計(jì)算總頁碼的 js 代碼如下所示:

      //計(jì)算總頁碼
      var totalPage=com.study.spring.Utils.PaginationUtils.totalPage(countBySql,pageSize);
      

      其實(shí)就是在 js 代碼中聲明 java 類+方法。

      但是問題來了,kettle 在運(yùn)行這段 JavaScript 腳本的時(shí)候,提示下面這樣的錯(cuò)誤:

      不能編譯 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)
      

      根據(jù)錯(cuò)誤信息來看,其實(shí)還是沒有找到相關(guān)類方法,和沒放這個(gè) jar 包一樣...

      四、FAQ

      上面這個(gè)錯(cuò)誤究竟是怎么回事呢?我也很奇怪。于是我就用壓縮工具也看了看 lib 目錄下的其它 jar 包結(jié)構(gòu),發(fā)現(xiàn)人家都是這樣式的:

      而我剛才打的 jar 包目錄是這樣子的:

      com 目錄并沒有在 jar 包的根路徑下,自然是訪問不到那個(gè)方法。

      好,問題產(chǎn)生的原因找到了,然后再說一下解決辦法:

      在 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 文件添加后的效果圖如下所示:

      再次打成的 jar 包內(nèi)部結(jié)構(gòu)為:

      成功!com 目錄已經(jīng)在 jar 包的根路徑下了。

      將 jar 包替換到 kettle 的 lib 目錄下,重啟 Kettle ,再次通過 javascripts 調(diào)用自定義 jar 包成功!


      點(diǎn)關(guān)注,不迷路

      好了各位,以上就是這篇文章的全部內(nèi)容了,能看到這里的人呀,都是人才

      白嫖不好,創(chuàng)作不易。各位的支持和認(rèn)可,就是我創(chuàng)作的最大動(dòng)力,我們下篇文章見!

      如果本篇博客有任何錯(cuò)誤,請(qǐng)批評(píng)指教,不勝感激 !

      posted @ 2020-01-24 23:39  CREATE_17  閱讀(998)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 中文无码热在线视频| 国产人妻精品午夜福利免费| 日本久久一区二区三区高清| 久久精品国产久精国产| 欧洲一区二区中文字幕| 99久久精品国产一区二区| 亚洲啪啪精品一区二区的| www亚洲精品| 97人妻精品一区二区三区| 国产永久免费高清在线观看| 丰满熟女人妻一区二区三| 成人中文在线| 不卡视频在线一区二区三区| 波多野结衣久久一区二区| 激情综合五月丁香亚洲| 久久综合伊人77777| 无码va在线观看| 国内自拍偷拍一区二区三区| 国产亚洲精品VA片在线播放| 精人妻无码一区二区三区| 亚洲卡1卡2卡3精品| 亚洲第一精品一二三区| 国产精品视频一区二区噜噜| 偷拍美女厕所尿尿嘘嘘小便| 无码精品人妻一区二区三区中| 久久久久无码国产精品不卡| 亚洲大尺度无码无码专线| 美女黄网站18禁免费看| 国产桃色在线成免费视频| 亚洲激情在线一区二区三区| 久久天天躁狠狠躁夜夜躁| 天堂…中文在线最新版在线| 久久综合综合久久综合| 亚洲日韩乱码中文无码蜜桃臀 | 国产成人高清亚洲综合| 策勒县| 18禁在线一区二区三区| 久久精品国产www456c0m| 精品一区二区中文字幕| 中文字幕人妻丝袜美腿乱| 免费av网站|