【发布时间】:2015-06-27 09:21:50
【问题描述】:
我定义了一个模式:
{ "namespace":"configschemas.avro",
"type":"record",
"name":"pathObject",
"fields":
[
{ "name":"pathString",
"type" : "string",
"default" : "null"
}
,
{ "name":"needsConversion",
"type" : "boolean" ,
"default" : false
}
]
}
编译上述架构后,第二个架构将无法编译。
{ "namespace" : "configschemas.avro",
"type" : "array" ,
"items" : configschemas.avro.pathObject
}
所有模式都在同一目录下,命名空间也相同。找不出缺陷。
编译第二个架构时出错:
Input files to compile:
logPaths.avsc
Exception in thread "main" org.apache.avro.SchemaParseException: org.codehaus.jackson.JsonParseException: Unexpected character ('p' (code 112)): expected a vali
d value (number, String, array, object, 'true', 'false' or 'null')
at [Source: logPaths.avsc; line: 3, column: 13]
at org.apache.avro.Schema$Parser.parse(Schema.java:967)
at org.apache.avro.Schema$Parser.parse(Schema.java:932)
at org.apache.avro.tool.SpecificCompilerTool.run(SpecificCompilerTool.java:73)
at org.apache.avro.tool.Main.run(Main.java:84)
at org.apache.avro.tool.Main.main(Main.java:73)
Caused by: org.codehaus.jackson.JsonParseException: Unexpected character ('p' (code 112)): expected a valid value (number, String, array, object, 'true', 'false
' or 'null')
at [Source: logPaths.avsc; line: 3, column: 13]
at org.codehaus.jackson.JsonParser._constructError(JsonParser.java:1433)
at org.codehaus.jackson.impl.JsonParserMinimalBase._reportError(JsonParserMinimalBase.java:521)
at org.codehaus.jackson.impl.JsonParserMinimalBase._reportUnexpectedChar(JsonParserMinimalBase.java:442)
at org.codehaus.jackson.impl.Utf8StreamParser._handleUnexpectedValue(Utf8StreamParser.java:2090)
at org.codehaus.jackson.impl.Utf8StreamParser.nextToken(Utf8StreamParser.java:555)
at org.codehaus.jackson.map.deser.std.BaseNodeDeserializer.deserializeObject(JsonNodeDeserializer.java:192)
at org.codehaus.jackson.map.deser.std.JsonNodeDeserializer.deserialize(JsonNodeDeserializer.java:58)
at org.codehaus.jackson.map.deser.std.JsonNodeDeserializer.deserialize(JsonNodeDeserializer.java:15)
at org.codehaus.jackson.map.ObjectMapper._readValue(ObjectMapper.java:2704)
at org.codehaus.jackson.map.ObjectMapper.readTree(ObjectMapper.java:1344)
at org.apache.avro.Schema$Parser.parse(Schema.java:965)
... 4 more**
【问题讨论】: