Neo4j 如何将自定义连接器配置文件解析为java属性格式?
我有一个自定义连接器,可以将Neo4j命令从文件写入Kafka,我想调试它。因此,我下载了Confluent v3.3.0并花时间熟悉它;但是,我发现自己在尝试加载连接器时遇到了困难。尝试加载带有.properties文件的连接器时,出现以下错误: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:
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字符的文件
你有两个选择
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,它将被加载。我也会读一读这篇文章,看看是否还有其他东西可以为我的项目挑选。非常感谢。