当前位置: 首页 > 知识库问答 >
问题:

maven avro插件给模式尚未支持的错误

刘和昶
2023-03-14

在我的maven项目中,我使用maven avro插件从avro模式文件创建Java类。这是我从架构注册表中得到的avro文件。

{
   "type":"record",
   "name":"Envelope",
   "namespace":"mongodb.company.price_service_company_calc_logs",
   "fields":[
      {
         "name":"after",
         "type":[
            null,
            {
               "type":"string",
               "connect.version":1,
               "connect.name":"io.debezium.data.Json"
            }
         ],
         "default":null
      },
      {
         "name":"patch",
         "type":[
            null,
            {
               "type":"string",
               "connect.version":1,
               "connect.name":"io.debezium.data.Json"
            }
         ],
         "default":null
      },
      {
         "name":"filter",
         "type":[
            null,
            {
               "type":"string",
               "connect.version":1,
               "connect.name":"io.debezium.data.Json"
            }
         ],
         "default":null
      },
      {
         "name":"source",
         "type":{
            "type":"record",
            "name":"Source",
            "namespace":"io.debezium.connector.mongo",
            "fields":[
               {
                  "name":"version",
                  "type":"string"
               },
               {
                  "name":"connector",
                  "type":"string"
               },
               {
                  "name":"name",
                  "type":"string"
               },
               {
                  "name":"ts_ms",
                  "type":"long"
               },
               {
                  "name":"snapshot",
                  "type":[
                     {
                        "type":"string",
                        "connect.version":1,
                        "connect.parameters":{
                           "allowed":true,
                           "last":false
                        },
                        "connect.default":false,
                        "connect.name":"io.debezium.data.Enum"
                     },
                     null
                  ],
                  "default":false
               },
               {
                  "name":"db",
                  "type":"string"
               },
               {
                  "name":"rs",
                  "type":"string"
               },
               {
                  "name":"collection",
                  "type":"string"
               },
               {
                  "name":"ord",
                  "type":"int"
               },
               {
                  "name":"h",
                  "type":[
                     null,
                     "long"
                  ],
                  "default":null
               },
               {
                  "name":"tord",
                  "type":[
                     null,
                     "long"
                  ],
                  "default":null
               }
            ],
            "connect.name":"io.debezium.connector.mongo.Source"
         }
      },
      {
         "name":"op",
         "type":[
            null,
            "string"
         ],
         "default":null
      },
      {
         "name":"ts_ms",
         "type":[
            null,
            "long"
         ],
         "default":null
      }
   ],
   "connect.name":"mongodb.company.price_service_company_calc_logs.Envelope"
}

每当我运行mvn包它给我以下错误:

目标组织的执行默认值。阿帕奇。avro:avro maven插件:1.9.2:schema失败:schema不受支持:null

我有没有办法得到更多关于问题确切根源的信息?显然,maven-e或-X开关没有多大帮助。

共有1个答案

阮才俊
2023-03-14

结果是avro文件不正确。类型的所有空值必须在双引号中。

{
   "type":"record",
   "name":"Envelope",
   "namespace":"mongodb.company.price_service_company_calc_logs",
   "fields":[
      {
         "name":"after",
         "type":[
            "null",
            {
               "type":"string",
               "connect.version":1,
               "connect.name":"io.debezium.data.Json"
            }
         ],
         "default":null
      },
      {
         "name":"patch",
         "type":[
            "null",
            {
               "type":"string",
               "connect.version":1,
               "connect.name":"io.debezium.data.Json"
            }
         ],
         "default":null
      },
      {
         "name":"filter",
         "type":[
            "null",
            {
               "type":"string",
               "connect.version":1,
               "connect.name":"io.debezium.data.Json"
            }
         ],
         "default":null
      },
      {
         "name":"source",
         "type":{
            "type":"record",
            "name":"Source",
            "namespace":"io.debezium.connector.mongo",
            "fields":[
               {
                  "name":"version",
                  "type":"string"
               },
               {
                  "name":"connector",
                  "type":"string"
               },
               {
                  "name":"name",
                  "type":"string"
               },
               {
                  "name":"ts_ms",
                  "type":"long"
               },
               {
                  "name":"snapshot",
                  "type":[
                     {
                        "type":"string",
                        "connect.version":1,
                        "connect.parameters":{
                           "allowed":true,
                           "last":false
                        },
                        "connect.default":false,
                        "connect.name":"io.debezium.data.Enum"
                     },
                     "null"
                  ],
                  "default":false
               },
               {
                  "name":"db",
                  "type":"string"
               },
               {
                  "name":"rs",
                  "type":"string"
               },
               {
                  "name":"collection",
                  "type":"string"
               },
               {
                  "name":"ord",
                  "type":"int"
               },
               {
                  "name":"h",
                  "type":[
                     "null",
                     "long"
                  ],
                  "default":null
               },
               {
                  "name":"tord",
                  "type":[
                     "null",
                     "long"
                  ],
                  "default":null
               }
            ],
            "connect.name":"io.debezium.connector.mongo.Source"
         }
      },
      {
         "name":"op",
         "type":[
            "null",
            "string"
         ],
         "default":null
      },
      {
         "name":"ts_ms",
         "type":[
            "null",
            "long"
         ],
         "default":null
      }
   ],
   "connect.name":"mongodb.company.price_service_company_calc_logs.Envelope"
}
 类似资料:
  • 问题内容: 我正在尝试做的是: 我正在尝试使用Java连接到[使用https]的Web Portal。我已经编写了使用Authenticator类提供用户凭据的代码。运行程序时出现异常: “ java.lang.UnsupportedOperationException:尚不支持” 我有张贴的代码: 第二次Try中引发了异常“ java.lang.UnsupportedOperationExcep

  • 问题内容: 我在Homestead流浪者盒子上运行 Laravel 5.4 。我已经使用命令安装了所有npm依赖项。那没有产生任何错误。 在我的 webpack.min.js 文件中,我有: 当我要运行时,出现以下错误: 这可能是什么问题? 问题答案: 我在Ubuntu上的旧版本的nodejs包也遇到了同样的问题。我刚刚更新到7.5,并且可以正常工作。

  • 1.2. jQuery支持2种插件方式 $.somePlugin $.fn.somePlugin 1.2.1. Global工具类的插件 比如 $.trim('hello world ') 这个方法是用于去掉空格的工具方法。它其实是给jQuery对象上增加了trim方法。 此种插件一般是工具类的方法。 1.2.2. 基于selector的插件 比如 $('.mytab').tab({

  • Tabris.js API主要是一个UI/控件的库,还有一些额外的受浏览器启发的API。为了提供它们不涉及的功能,Tabris.js可以使用Apache Cordova插件进行扩展。 Cordova插件的JavaScript API文档在Tabris.js中也是有效的,只有一个小例外:在访问插件API之前,无需监听deviceready事件。当加载应用程序主模块时,所有插件都将准备就绪。 默认插件

  • 我得到这个错误,最初在运行项目在消息梯度同步。 错误:(1,0)未找到id为'com.android.application'的插件。 运行项目后,我得到以下错误: Gradle不支持模块。 下面我贴出了与此相关的代码:

  • 问题内容: 我正在学习平均堆栈,当我尝试使用启动服务器时 我有一个例外说: 这是我在/models/Posts.js中的代码 如我所见,应该为模型“ Post”注册架构,但是什么原因可能导致引发异常? 提前致谢。 编辑: 这是异常错误 这是带有猫鼬初始化的app.js代码: 前行: 问题答案: 模型导出不是问题。我遇到过同样的问题。 真正的问题是需要模型声明 低于路线依赖关系。只需将mongoDB