您的位置:首页 > 编程语言 > Java开发

java 整合Web调用kettle本地转换

2017-08-18 17:53 344 查看
@RequestMapping("/kettle")

 public void kettle(HttpServletRequest request){

  try {

   String user_dir = System.getProperty("user.dir");

   /*String kettleHome = this.getServletContext().getRealPath(File.separator + "WEB-INF");*/

   String kettleHome = request.getSession().getServletContext().getRealPath(File.separator + "WEB-INF/kettle");   

   // Kettle初始化需要修改相应的配置路径  

   System.setProperty("user.dir", kettleHome);

   System.setProperty("KETTLE_HOME", kettleHome);

   KettleEnvironment.init();

  } catch (KettleException e) {

   // TODO Auto-generated catch block

   e.printStackTrace();

  }

  String[] params = {"1","content","test.txt"};

  runTransfer(params,"12.ktr");

  

 }

 

 

 private Object getServletContext() {

  // TODO Auto-generated method stub

  return null;

 }
 public  void runTransfer(String[] params, String ktrPath) { 

        Trans trans = null; 

        try { 

            // // 初始化 

            // 转换元对象 

            /*if (!KettleEnvironment.isInitialized()) {

             KettleEnvironment.init();

            }*/

            // 初始化 

         

            //EnvUtil.environmentInit(); 

           

            //StepLoader.init();

            TransMeta transMeta = new TransMeta(ktrPath); 

            //TransMeta transMeta = new TransMeta(System.getProperty("user.dir")+ktrPath);

            // 转换 

            trans = new Trans(transMeta);

             

            // 执行转换 

            trans.execute(params); 

            // 等待转换执行结束 

            trans.waitUntilFinished(); 

            // 抛出异常 

            if (trans.getErrors() > 0) { 

                throw new Exception( 

                        "There are errors during transformation exception!(传输过程中发生异常)"); 

            } 

        } catch (Exception e) { 

            e.printStackTrace(); 

        } 

    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: