0
[输入图像说明] [1]我有nifi 1.3.0。是否有可能在nifi中实现的groovy版本无法识别lambda表达式?这里是我的代码,我该如何改变它才能在nifi处理器中工作?Nifi:无法识别groovy xmlSlurper结构
- 是否有可能处理器不能正常工作,因为我不使用session.tranfer我的意思是不产生任何flowfile?
def static addDays(def date) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Calendar c = Calendar.getInstance(); c.setTime(sdf.parse(date)); c.add(Calendar.DATE, 1); // number of days to add String m = sdf.format(c.getTime()); // dt is now the new date return m; } def flowFile=session.get() ArrayList<String> value = new ArrayList<>(); if(flowFile!=null){ value.add(flowFile.getAttribute('filename'); session.remove(flowFile); } File file = new File("C://Users//user//Desktop//try2//nifi-1.3.0//4//conf2.xml"); String content = ""; String material = ""; BufferedReader s; BufferedWriter w; RandomAccessFile ini = new RandomAccessFile(file, "rwd"); FileLock lock = ini.getChannel().lock(); DocumentBuilder dBuilder; Document document, doc; String date="",data=""; try { String sCurrentLine; s = new BufferedReader(Channels.newReader(ini.getChannel(), "UTF-8")); while ((sCurrentLine = s.readLine()) != null) { content += sCurrentLine; } ini.seek(0); def xml = new XmlParser().parseText(content) for(int i=0;i<value.size();i++) { date = value.get(i).substring(0, 10); xml.rs.borderCross.details.findAll({ p -> p.runAs[0].text() == "false" && p.start[0].text() == date.toString() }).each({ p -> p.start[0].value = addDays(p.start[0].text()) p.runAs[0].value = "true" }) } def stringWriter = new StringWriter() new XmlNodePrinter(new PrintWriter(stringWriter)).print(xml) def newXml = stringWriter.toString() TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer(); InputStream stream1 = new ByteArrayInputStream(newXml.toString().getBytes("UTF-8")); DocumentBuilderFactory dbFactory1 = DocumentBuilderFactory.newInstance(); dBuilder = dbFactory1.newDocumentBuilder(); document = dBuilder.parse(stream1); DOMSource source=new DOMSource(document); ByteArrayOutputStream bos = new ByteArrayOutputStream(); StreamResult result1 = new StreamResult(bos); try { transformer.transform(source, result1); } catch (TransformerException e) { e.printStackTrace(); } byte[] array = bos.toByteArray(); data = bos.toString(); if (!data.isEmpty()) { ini.setLength(0); w = new BufferedWriter(Channels.newWriter(ini.getChannel(), "UTF-8")); w.write(data); lock.release(); w.close(); } else{ ini.setLength(0); w = new BufferedWriter(Channels.newWriter(ini.getChannel(), "UTF-8")); w.write(content); lock.release(); w.close(); } }catch (FileNotFoundException e) { TimeUnit.SECONDS.sleep(50000); } catch (IOException e) { e.printStackTrace(); } catch (TransformerConfigurationException e) { e.printStackTrace(); } catch (ParserConfigurationException e) { e.printStackTrace(); } catch (SAXException e) { e.printStackTrace(); } catch (OverlappingFileLockException e) { TimeUnit.SECONDS.sleep(50000); lock.release(); ; } catch (Exception e) { e.printStackTrace(); } finally { //lock.release(); ini.close(); }
MulipleCompilationErrorsException:启动失败意外的标记 –
,当我看行号错误表明我,我有简单的String s =”“在这条线不能找出为什么这个错误是由于 –
当我在intelij想法代码上运行这个完美的作品,但内部的nifi处理器代码,它会抛出异常 –