kettle java api save 任务 无法load trans/job

发布时间 2023-03-27 15:20:14作者: vx_guanchaoguo0

使用save 保存

 public static void runTrans(String transName,KettleDatabaseRepository repository) {
        try {

            RepositoryDirectoryInterface dir = repository.loadRepositoryDirectoryTree().findDirectory("/");
            ObjectId objectId = repository.getTransformationID(transName, dir);
            TransMeta transMeta = null;
            if (objectId == null) {
                transMeta = buildTrans(transName, repository);
                repository.save(transMeta, "");
            }else{
                transMeta = repository.loadTransformation(objectId, null);
            }

            Trans trans = new Trans(transMeta);
            trans.execute(null);
            trans.waitUntilFinished();
            if (trans.getErrors() > 0) {[]()
                throw new RuntimeException("There were errors during transformation execution.");
            }
            System.out.println("***********the end************");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
  • 运行正常

第二次报错

处理方式

  • kettle gui 选选项添加 characterEncoding=utf8

  • 代码添加如下