Spring Boot GraphQL出现问题,导致404错误

时间:2019-07-08 16:49:31

标签: java spring-boot gradle graphql

我正在尝试学习GraphQL,并试图运行this simple example。我正在研究的是Java部分。我正在使用Gradle进行构建,并且可以正常运行,甚至可以正常运行,只是当我尝试在Web浏览器上访问本地主机时,出现404错误。我对Springboot也不是很熟悉,并且我会在尝试过程中尝试这一点。

我已经使用Spring Initalizr创建了项目。目录结构是这样的:

/ hello-world / src / main / java / com / graphqljava / hello

“ hello”是我创建了一个名为HelloWorld1.java的文件的地方,也是我放置示例代码的地方。 Spring Initalizr在“ hello”(hello / helloworld)中创建了另一个目录,该目录包含一个名为HelloWorldApplication.java的生成的Java文件。我不知道我自己制作和使用自己的文件是否是问题,我主要是根据其他教程的指导来完成的。

如果你们能帮助我弄清楚问题或指出正确的方向,我将非常感激。在这方面,我有点茫然,因为这是最基本的示例,我什至无法使它正常工作。谢谢。

我认为所有依赖关系都是有序的,但是我认为问题出在端点上?

这是我的gradle文件。

plugins {
    id 'org.springframework.boot' version '2.1.6.RELEASE'
    id 'java'
}

apply plugin: 'io.spring.dependency-management'

group = 'com.graphql-java.hello'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'

repositories {
    mavenCentral()
}
dependencies {
    compile 'com.graphql-java:graphql-java:11.0'

    implementation 'org.springframework.boot:spring-boot-starter-web'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

这是Java文件(HelloWorld1.java)

import graphql.ExecutionResult;
import graphql.GraphQL;
import graphql.schema.GraphQLSchema;
import graphql.schema.StaticDataFetcher;
import graphql.schema.idl.RuntimeWiring;
import graphql.schema.idl.SchemaGenerator;
import graphql.schema.idl.SchemaParser;
import graphql.schema.idl.TypeDefinitionRegistry;

import static graphql.schema.idl.RuntimeWiring.newRuntimeWiring;

public class HelloWorld1 {

    public static void main(String[] args) {
        String schema = "type Query{hello: String} schema{query: Query}";

        SchemaParser schemaParser = new SchemaParser();
        TypeDefinitionRegistry typeDefinitionRegistry = schemaParser.parse(schema);

        RuntimeWiring runtimeWiring = newRuntimeWiring()
                .type("Query", builder -> builder.dataFetcher("hello", new StaticDataFetcher("world")))
                .build();

        SchemaGenerator schemaGenerator = new SchemaGenerator();
        GraphQLSchema graphQLSchema = schemaGenerator.makeExecutableSchema(typeDefinitionRegistry, runtimeWiring);

        GraphQL build = GraphQL.newGraphQL(graphQLSchema).build();
        ExecutionResult executionResult = build.execute("{hello}");

        System.out.println(executionResult.getData().toString());
        // Prints: {hello=world}
    }
}

我只是希望弹出一个简单的消息,但我却得到了

Whitelabel错误页面

此应用程序没有针对/ error的显式映射,因此您将其视为备用。

发生意外错误(类型=未找到,状态= 404)。 没有可用消息

编辑:我也将示例代码复制到了HelloWorldApplication.java文件中,但是仍然遇到相同的问题。

0 个答案:

没有答案