SpringBoot整合GraphiQL/GraphQL遇404无法访问问题求助
问题
我用Java + SpringBoot开发基础REST API,已经更新application.properties和pom.xml集成GraphQL/GraphiQL,但启动后访问localhost:8080/graphiql或/graphql都返回404。已经实现了GraphQLMutationResolver和GraphQLQueryResolver接口的变更器与解析器。
注意:service、web、static、templates目录已被标记为排除,运行时不属于项目内容。
附带三张截图:1. 错误显示说明;2. Application.properties配置;3. localhost:8080/graphiql访问情况。
排查方案
1. 核对依赖完整性
确保pom.xml里包含Spring GraphQL核心依赖和Web starter(GraphiQL依赖Web支持):
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-graphql</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
2. 检查配置文件正确性
确认application.properties里的GraphQL配置无误:
# GraphQL主端点 spring.graphql.path=/graphql # 启用GraphiQL并配置路径 spring.graphql.graphiql.enabled=true spring.graphql.graphiql.path=/graphiql
如果设置了server.servlet.context-path,访问时要加上这个前缀(比如localhost:8080/your-context/graphiql)。
3. 确认Resolver类被Spring扫描
- Resolver类必须加
@Component或@Service注解,确保Spring能扫描到并注册为Bean - 主启动类的
@SpringBootApplication扫描范围要覆盖Resolver所在的包
4. 检查Schema文件路径
Spring GraphQL默认读取src/main/resources/graphql/下的.graphqls/.graphql文件,确保:
- Schema文件存在且路径正确,没有被排除在项目外
- 如果自定义了路径,在配置里指定:
spring.graphql.schema.locations=classpath:your-schema-path/
5. 查看启动日志
启动应用时看控制台日志,找关键信息:
- 是否有
Mapping GraphQL endpoint at '/graphql',确认端点注册成功 - 是否有
GraphiQL endpoint enabled at '/graphiql',确认GraphiQL已启用 - 有没有Resolver Bean注册失败的报错
6. 核对端口与上下文路径
检查application.properties里的端口和上下文配置:
server.port=8080 # 如果有这个配置,访问要加前缀 # server.servlet.context-path=/your-app
确保访问时用的是正确的端口和路径。
内容的提问来源于stack exchange,提问作者walt936
相关产品推荐
相关产品推荐

