我有这样的AVRO协议:
{
"namespace": "org.apache.camel.avro.generated",
"protocol": "KeyValueProtocol",
"types": [
{
"name": "Key", "type": "record",
"fields": [
{ "name": "key", "type": "string"}
]
},
{
"name": "Value", "type": "record",
"fields": [
{ "name": "value", "type": "string"}
]
}
],
"messages": {
"put": {
"request": [{"name": "key", "type": "Key"}, {"name": "value", "type": "Value"} ],
"response": "null"
},
"get": {
"request": [{"name": "key", "type": "Key"}],
"response": "Value"
}
}
}
骆驼路线:
import org.apache.camel.builder.RouteBuilder;
import org.springframework.stereotype.Component;
@Component public class Computations extends RouteBuilder {
@Override
public void configure() throws Exception {
from("avro:http:localhost:12345?protocol=KeyValueProtocol")
.process(exchange->{
System.out.println(exchange);
})
.to("log:foo")
.end();
} }
并且在编译期间我收到错误:
[错误]无法执行目标 org.apache.avro:avro-maven-plugin:1.8.2:项目上的模式(默认) tradersbook-mt-common-computations:目标的执行默认值 org.apache.avro:avro-maven-plugin:1.8.2:架构失败:没有类型: {"命名空间":" org.apache.camel.avro.generated""协议":" KeyValueProtocol""&类型#34;:[{"名称":"键""类型":"记录""字段" :[{"名称":"键""类型":"串"}]},{"名称&#34 ;:"值""类型":"记录""字段":[{"名称":& #34;值""类型":"串"}]}],"邮件" {"把":{ "请求":[{"名称":"键""类型":"键"},{& #34;名称":"值""类型":"值"}],"响应":"空"}"获得" {"请求":[{"名称":"键""类型& #34;:"键"}],"响应":"值"}}} - > [帮助1]
依赖关系:
[INFO] + - org.apache.camel:camel-core:jar:2.18.5:compile
[INFO] + - org.apache.avro:avro:jar:1.8.2:compile
任何建议?
答案 0 :(得分:0)
在我的情况下,唯一的问题是我的文件有错误的扩展名。 协议不能包含扩展程序'。 avsc '
'的 AVPR 强>'和'。 avdl '使用maven插件正常工作(罚款=='编译期间没有错误')
看起来这个扩展的更改提供了通过插件忽略这些数据。