Ich möchte XML-Daten aktualisieren und es in Flowfile1 schreiben, aber aus irgendeinem Grund kann mein ExecuteScript-Prozessor Übertragungsbeziehung hier nicht angeben ist mein Code, Was sollte ich ändern, um diese Aufgabe zu machen?: Ist es möglich, dass mein Code in session.write keine XML-Daten in ByteArray und nicht in Flowfile-Inhalt schreiben kann? (Aber nicht werfen Ausnahme)Nifi: Übertragungsbeziehung nicht angegeben
flowFile1 = session.putAttribute(flowFile1, "filename", "conf.xml");
session.write(flowFile1, new StreamCallback() {
@Override
public void process(InputStream inputStream1, OutputStream outputStream) throws IOException {
TransformerFactory transformerFactory1 = TransformerFactory.newInstance();
Transformer transformer1 = null;
try {
transformer1= transformerFactory1.newTransformer();
} catch (TransformerConfigurationException e) {
e.printStackTrace();
}
DOMSource source1 = new DOMSource(doc);
ByteArrayOutputStream bos1 = new ByteArrayOutputStream();
StreamResult result = new StreamResult(bos1);
try {
transformer1.transform(source1, result);
} catch (TransformerException e) {
e.printStackTrace();
}
byte[] array1 = bos1.toByteArray();
outputStream.write(array1);
}
});
if(flowFile1!=null){
session.transfer(flowFile1, REL_SUCCESS);
}
else{
session.transfer(flowFile1, REL_FAILURE);
}
}catch (OverlappingFileLockException e) {
lock.release();
}
catch (FileNotFoundException e) {
Thread.sleep(5000);
} catch (Exception e) {
e.printStackTrace();
}finally {
lock.release();
ini.close();
}