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

Avro Schema格式异常-“Security分类”不是定义的名称

丁英韶
2023-03-14

我正在尝试使用这个avro模式

{
  "type": "record",
  "name": "ComplianceEntity",
  "namespace": "com.linkedin.events.metadata",
  "fields": [
    {
      "name": "fieldPath",
      "type": "string"
    },
    {
      "name": "complianceDataType",
      "type": {
        "type": "enum",
        "name": "ComplianceDataType",

        "symbols": [
          "NONE",
          "MEMBER_ID"
        ],
        "symbolDocs": {
          "NONE": "None of the following types apply",
          "MEMBER_ID": "ID for LinkedIn members"
        }
      }
    },
    {
      "name": "complianceDataTypeUrn",
      "type": [
        "null",
        "string"
      ],
      "default": null
    },
    {
      "name": "fieldFormat",
      "type": [
        "null",
        {
          "type": "enum",
          "name": "FieldFormat",
          "symbols": [
            "NUMERIC"
          ],
          "symbolDocs": {
            "NUMERIC": "Numerical format, 12345"
          },
          "doc": "The field format"
        }
      ]
    },
    {
      "name": "securityClassification",
      "type": "SecurityClassification"
    },
    {
      "name": "valuePattern",
      "default": null,
      "type": [
        "null",
        "string"
      ]
    }
  ]
}

要使用avro工具生成和编辑avro文件:

java -jar ./avro-tools-1.8.2.jar compile schema ComplianceEntity.avsc .

但我收到了以下错误信息:

线程"main"org.apache.avro.SchemaParseException中的异常:"Security分类"不是已定义的名称。"security分类"字段的类型必须是已定义的名称或{"type":...}表达式。

谁能告诉我,为什么SecurityClassification没有被定义为一个名字?

共有1个答案

岳出野
2023-03-14

您将其用作字段的类型,但您没有像兼容DataType那样正确定义它,这就是您获得avro异常的原因

{
      "name": "securityClassification",
      "type": "SecurityClassification"
}

确保如果您有超过1个Schema,则会传递所有这些,尤其是依赖模式。AVRO 1.5.3支持它https://issues.apache.org/jira/browse/AVRO-877.

java -jar ./avro-tools-1.8.2.jar compile schema SecurityClassification.avsc ComplianceEntity.avsc .
 类似资料:
  • 我想用这个avro shcema 要使用avro工具生成和编辑avro文件: 但我收到了以下错误信息: 线程“main”组织中出现异常。阿帕奇。阿夫罗。SchemaParseException:“记录”不是定义的名称。“customerContacts”字段的类型必须是已定义的名称或{“类型”:表示 有人能告诉我为什么记录没有被定义为一个名字吗?

  • spring security oauth的错误格式符合oauth规范,如下所示。 特别是在资源服务器上,我发现为身份验证问题提供不同的错误格式有点奇怪。所以我想改变这个异常的呈现方式。 授权服务器中的错误处理使用标准的Spring MVC特性,即@ExceptionHandler方法 所以我尝试了类似这样的方法来自定义错误的格式: 但这不起作用。 查看代码,所有的错误呈现似乎都是在中完成的。但实

  • 当我执行一个web客户端请求(到一个外部api)并且响应是4xx或5xx代码时,我遇到了一个问题。建议处理该响应并使用自定义类检索响应 Web客户端配置是 处理过滤器.class MyExpcetion.class 但是我的客户回复总是给我一个默认格式 代替 怎么了?谢谢

  • 问题内容: 我们正在使用Spring MVC + Spring Security + Hibernate创建一个RESTful API。该API可以生成JSON和HTML。做好弹簧安全性的错误处理让我头疼: 身份验证可以通过多种方式进行:BasicAuth,通过POST请求中的不同参数以及通过Web登录。对于每种身份验证机制,在Spring Security xml配置的名称空间元素中声明了一个过

  • 我在spring boot RESTfull项目中有一些特殊情况,而不是标准的自定义身份验证异常时的错误消息。我需要一个不同的消息取决于用户名或密码是错误的,或者如果用户名不存在,或者如果用户在数据库中被停用。目前我只能得到消息,我还没有找到任何解决方案,如何根据用户属性或特殊情况自定义消息。 我当前有如下自定义身份验证提供程序: 我有这样的定制用户详细信息服务: 在哪里可以处理来自的消息,并将其

  • 当我尝试在junit测试类中加载配置文件时,在注入数据源时出现以下错误: 组织。springframework。豆。工厂NoSuchBeanDefinitionException:在组织中未定义名为“transactionManager”的bean。springframework。豆。工厂支持DefaultListableBeanFactory。位于org的getBeanDefinition(De