Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Neo4j 如何将自定义连接器配置文件解析为java属性格式?_Neo4j_Apache Kafka_Apache Kafka Connect - Fatal编程技术网

Neo4j 如何将自定义连接器配置文件解析为java属性格式?

Neo4j 如何将自定义连接器配置文件解析为java属性格式?,neo4j,apache-kafka,apache-kafka-connect,Neo4j,Apache Kafka,Apache Kafka Connect,我有一个自定义连接器,可以将Neo4j命令从文件写入Kafka,我想调试它。因此,我下载了Confluent v3.3.0并花时间熟悉它;但是,我发现自己在尝试加载连接器时遇到了困难。尝试加载带有.properties文件的连接器时,出现以下错误: parse error: Invalid string: control characters from U+0000 through U+001F must be escaped at line 1, column 124 parse error:

我有一个自定义连接器,可以将Neo4j命令从文件写入Kafka,我想调试它。因此,我下载了Confluent v3.3.0并花时间熟悉它;但是,我发现自己在尝试加载连接器时遇到了困难。尝试加载带有.properties文件的连接器时,出现以下错误:

parse error: Invalid string: control characters from U+0000 through U+001F must be escaped at line 1, column 124
parse error: Invalid numeric literal at line 2, column 0
我有一个线索,它正在尝试将文件解析为JSON文件,与此错误之前一样。在尝试加载连接器时,我遇到了以下错误:

Warning: Install 'jq' to add support for parsing JSON
所以我brew安装了jq,现在得到了前一个错误

我希望这个文件被解析为java属性格式,因为.properties是隐式的,但是我需要在某个地方显式地设置吗

更新:

我按照@Konstantine Karantasis的建议将.properties转换为JSON,但得到的错误与之前相同,但没有第一行:

parse error: Invalid numeric literal at line 2, column 0
我三次检查了我的格式,并对错误进行了一些搜索,但没有找到答案。请让我知道我的格式是否有错误,或者在Kafka Connect中使用JSON文件时是否存在细微差别,我对此一无所知

Java属性:

name=neo4k-file-source
connector.class=neo4k.filestream.source.Neo4jFileStreamSourceConnector
tasks.max=1
file=Neo4jCommands.txt
topic=neo4j-commands
转换为JSON:

[{
  "name": "neo4k-file-source",
  "connector": {
    "class": "neo4k.filestream.source.Neo4jFileStreamSourceConnector"
  },
  "tasks": {
    "max": 1
  },
  "file": "Neo4jCommands.txt",
  "topic": "neo4j-commands"
}]

Confluent CLI是用来启动连接器的,它试图巧妙地确定属性文件的类型。它不依赖于扩展名(.properties),而是调用输入文件上的
file
,并根据
ASCII
字符串匹配结果

这符合java属性文件()的当前定义,但应该扩展它以匹配以UTF-8编码的文件或包含转义unicode字符的文件

你有两个选择

  • 将属性转换为JSON格式
  • 编辑CLI以匹配运行
    file
  • 查看使用
    confluent
    CLI加载的有效
    json
    文件的示例

    在您的示例中,尝试以下方法:

    {
        "name": "neo4k-file-source",
        "config": {
            "connector.class": "neo4k.filestream.source.Neo4jFileStreamSourceConnector",
            "tasks.max": 1,
            "file": "Neo4jCommands.txt",
            "topic": "neo4j-commands"
        }
    }
    

    嘿@Konstantine Karantasis,我尝试了第一种选择,因为我不太知道如何接近第二种。我对CLIs的理解非常基本。不过,在转换为JSON之后,我得到了一个新的错误,说我有一个无效的数字文本。我已经三次检查了我的格式并搜索了错误,但结果很短。你能单独用
    jq
    解析你的json吗?据我所知,是的。只需使用“cat | jq”。它以稍微不同的格式吐出我的JSON。使用您的JSON,它将被加载。我也会读一读这篇文章,看看是否还有其他东西可以为我的项目挑选。非常感谢。