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

GraphQl:对象类型“xxx”实现了一个已知的接口,但是找不到该类型名称的类

连乐
2023-03-14

GraphQl和Spring靴。

图ql模式

type Query {
    animal(id: ID!): Animal!
}

interface Animal{ 
    id: ID
    name: String
}

type Cat implements Animal {
   id: ID
   name: String
}

type Dog implements Animal {
   id: ID
   name: String
}


fun animal(id: String): CompletableFuture<Any> {
    return service.getAnimal(id).toFuture();
}

错误:

原因:org。springframework。豆。工厂BeanCreationException:创建名为“schemaParser”的bean时出错,该bean在类路径资源[graphql/kickstart/tools/boot/GraphQLJavaToolsAutoConfiguration.class]中定义:通过工厂方法实例化bean失败;嵌套的异常是org。springframework。豆。BeanInstationException:未能实例化[com.coxautodev.graphql.tools.SchemaParser]:工厂方法“SchemaParser”引发异常;嵌套的异常是com。柯萨托德夫。图ql。工具。SchemaClassScannerError:对象类型“Cat”实现了一个已知接口,但找不到该类型名称的类。请在解析器的字典中传递类型为“Cat”的类。

共有1个答案

令狐新翰
2023-03-14

两个解决方案(kotlin)

解决方案1:将配置文件添加到项目中,并将类添加到字典中

@Configuration
class GraphQLConfig {

@Bean
@Primary
fun schemaParserDictionary(): SchemaParserDictionary? {
    val dictionary = SchemaParserDictionary()
    dictionary.add("Cat", Cat::class.java)
    dictionary.add("Dog", Dog::class.java)
    return dictionary
  }
}

解决方案2:为每种类型添加解析程序并修改模式

>

  • 添加虚拟解析器

    fun cat(): Cat? {
     return null
    }
    
    fun dog(): Dog? {
     return null
    }
    

    还要更改模式

    之前

    type Query {
        animal(id: ID!): Animal!
    }
    

    之后

    type Query {
        animal(id: ID!): Animal!
        cat
        dog
    }
    

  •  类似资料:
    • 问题内容: 我是JPA的新手,主键值的自动生成存在问题。 我有以下实体: 以及其他类中的以下主要方法: 这是我的持久性单元: 当我执行程序时,在标有正确注释的行中出现以下异常: 我想念什么? 问题答案: TopLink过去要求您为MySQL 显式设置 GenerationType.IDENTITY ,因此请更改它并删除数据库。然后尝试再次运行样本。此外,您可能还想明确设置数据库平台: 我也模糊地记

    • 我试图将MealsRepository接口实现到MealsRepositoryImpl中,但是我得到了以下错误: 无效的重写。'mealsrepositoryimpl.findallforcanteenbydate'('(int,DateTime)->Future Map int,dynamic')的类型不是'mealrepository.findallforcanteenbydate'('(in

    • 我有一个界面,看起来像 公共接口密钥检索器{ } 我希望实现是这样的 CustomerTypeKeyRetriever(实现类) 我该如何实现这一点。目前它抛出一个编译错误——“类型CustomerTypeKeyRetriever必须实现继承的抽象方法KeyRetriever.getKey(Object)”

    • 问题内容: 是否有一个JavaScript的等效的Java的? 问题答案: 是否有与Java等效的JavaScript ? 没有 。 名称为。不论类别如何,的类别名称均为。ES2015环境中的内置构造函数具有正确的属性;例如是。 但是,这里有各种各样的骇客,它们都以一种或另一种方式下降: 这是一种可以满足您需要的技巧-请注意,它会修改Object的原型,而人们对此并不满意(通常是出于充分的理由)

    • 编辑-更新:我根据本教程创建了一个全新的项目,我注意到,在配置pom后,问题是如果我添加 应用程序类的注释。 我是Spring Boot的新手,我已经创建了一个具有持久性的简单工作应用程序,现在我试图添加Spring security jwt,但它不起作用。 以下是我的项目结构: 在为安全性添加依赖项之前,它在持久性方面都工作得很好,现在是这样。我错过了什么?

    • 我正在写一个Spring MVC,并坚持以下错误: 18:34:44999警告[org.springframework.web.context.support.XmlWebApplicationContext](MSC服务线程1-1)在上下文初始化过程中遇到异常-取消刷新尝试:org。springframework。豆。工厂BeanCreationException:创建名为“org”的bean时