Как передать параметр XML через чайник Java API - PullRequest
0 голосов
/ 13 марта 2019

Я хочу использовать Java API для выполнения преобразования чайника.Теперь мне нужно передать xml в качестве параметра, что я и сделал, как показано ниже.

public String executeTrans(@RequestParam Map<String, Object> map) {
        String xmlString = "<PersonList> " + 
                "    <Person>" + 
                "        <Name>tom</Name> " + 
                "        <Age>30</Age>" + 
                "        <Sex>1</Sex>" + 
                "    </Person>" + 
                "    <Person>" + 
                "        <Name>john</Name>" + 
                "        <Age>31</Age>" + 
                "        <Sex>1</Sex>" + 
                "    </Person>" + 
                "</PersonList>";
        String filePath = map.get("filePath") + "";
        String result = "";
        if (filePath.isEmpty() || filePath.equals("null")) {
            LOGGER.error("filePath is null");
            return "";
        }
        filePath = PropertiesUtil.getProperty("kittle.file.path") + "/" + filePath;
        map.put("abc", xmlString);
        try {
            CallKtrUtil.runTrans(filePath, map);
        } catch (KettleException e) {
            e.printStackTrace();
        }
        return result;
    }


public static void runTrans(String filePath, Map<String, Object> paraMap) throws KettleException {
        StepPluginType modelPluginType = StepPluginType.getInstance();

        modelPluginType.getPluginFolders()
                .add(new PluginFolder(PropertiesUtil.getProperty("kettle.pluginFolder.path")+"/kettle-json-plugin", false, true));
        modelPluginType.getPluginFolders()
        .add(new PluginFolder(PropertiesUtil.getProperty("kettle.pluginFolder.path")+"/pdi-xml-plugin", false, true));


        KettleEnvironment.init();

        TransMeta transMeta = new TransMeta(filePath);

        Trans trans = new Trans(transMeta);

        for (String keyString : paraMap.keySet()) {
            trans.setVariable(keyString, paraMap.get(keyString) + "");
        }

        trans.prepareExecution(null);

        trans.execute(null);

        trans.waitUntilFinished();
    }

мое преобразование выглядит следующим образом:

enter image description here

Я использую плагин Get data from XML для получения параметра,

enter image description here

, но это не работает, преобразование не может получить проходпараметр.Кто-нибудь может помочь?

Спасибо

...