我有两个用Oozie workflow.xml编写的java操作。我希望将我的第一个java操作的输出传递给下一个java操作以供重用。
我知道这需要使用"oozie.action.output.properties“来完成。在第一个操作中,我将设置输出参数"buildFileName“,如下所示:
File file = new File(System.getProperty("oozie.action.output.properties"));
LOGGER.info("SystemGetProperty:" + System.getProperty("oozie.action.output.properties").toString());
Properties props = new Properties();
props.setProperty("buildFileName", buildFileName);
OutputStream os= new FileOutputStream(file);
props.store(os, "");
os.close();但不幸的是,在第二个操作中,我无法使用参数值。应用程序作业正在获得成功,但参数值为null。
我的第一个java操作如下所示:
<action name="java-action1">
<java>
<main-class>XYZ.MyJavaAction</main-class>
<arg>Args</arg>
<capture-output />
</java>
<ok to="java-action2"/>
<error to="fail"/>
我的第二个java操作如下所示:
<action name="java-action2">
<java>
<main-class>XYZ.MyJavaAction</main-class>
<arg>{"outputFileName":"${wf:actionData('java-action1')['buildFileName']}"}</arg>
</java>
<ok to="End"/>
<error to="fail"/>
有人能帮帮我吗?
发布于 2019-07-03 15:19:28
oozie capture_output java上的Google搜索直接指向Java烹饪本部分“捕获-输出元素”,引用如下:
main()方法将属性文件写入oozie.action.output.properties环境变量中指定的路径. Properties props = new Properties();
props.setProperty("PASS_ME", "123456");
File file = new File(System.getProperty("oozie.action.output.properties"));
OutputStream os = new FileOutputStream(file);
props.store(os, "");
os.close();<param>MY_VAR=${wf:actionData('java1')['PASS_ME']}</param>https://stackoverflow.com/questions/56810295
复制相似问题