代码之家  ›  专栏  ›  技术社区  ›  hasherBaba

在为Nifi编写流媒体服务时,如何解决Java的空指针异常?[闭门]

  •  0
  • hasherBaba  · 技术社区  · 6 年前

    我正在使用Nifi中的处理器从卡夫卡获取数据并将其写入文件。脚本是用python编写的。

    import json
    import java.io
    from org.apache.commons.io import IOUtils
    from java.nio.charset import StandardCharsets
    from org.apache.nifi.processor.io import StreamCallback
    
    class ModJSON(StreamCallback):
      def __init__(self):
            pass
      def process(self, inputStream, outputStream):
        text = IOUtils.toString(inputStream, StandardCharsets.UTF_8)
        outputStream.write(bytearray(text))
    
    flowFile = session.get()
    if (flowFile != None):
      flowFile = session.write(flowFile, ModJSON())
      flowFile = session.putAttribute(flowFile, "filename", flowFile.getAttribute('filename').split('.')[0]+'_translated.json')
    session.transfer(flowFile, REL_SUCCESS)
    session.commit()
    

    它指出了以下错误: enter image description here

    我读过java中的这个错误,但我不明白为什么会在这里产生这个错误。

    1 回复  |  直到 6 年前
        1
  •  4
  •   Bryan Bende    6 年前

    如果您只想将卡夫卡的消息写入文件,有什么原因不能直接使用卡夫卡->文件?

    错误是因为在if(flowFile!=None)中只放了两行:如果flow file为null,则仍在第18行调用transfer,这会产生错误。