引入JNPM依赖未调用致Spring Boot GET请求报错,原因是什么?
问题原因
- 依赖引入方式错误:你引入的
jnpm-maven-plugin是Maven构建插件,仅应当配置在pom文件的<build><plugins>段落中供构建流程调用,不应该作为普通项目依赖放在<dependencies>段。该插件携带了大量运行时不需要的依赖以及Spring自动配置类,只要出现在类路径下,Spring Boot的自动装配机制就会加载其配置,无需你主动调用相关代码。 - 配置冲突破坏原有HTTP请求逻辑:JNPM的自动配置会默认修改Spring容器中全局
RestTemplate、HTTP客户端的序列化规则,对于GET请求,会将原本为空的查询参数序列化为空请求体附加到请求中,触发HTTP规范校验,抛出method GET must not have a request body错误,原有正常的Github API请求逻辑因此被影响。
访问NPM Registry的替代方案
无需引入第三方封装库,直接调用NPM公开的Registry接口即可满足获取包信息的需求,接口规则如下:
- 获取指定npm包的全量元数据:发送GET请求到
https://registry.npmjs.org/<目标包名> - 获取指定npm包特定版本的元数据:发送GET请求到
https://registry.npmjs.org/<目标包名>/<版本号> - 国内使用可以将域名替换为
https://registry.npmmirror.com,接口规则和官方完全兼容,访问速度更快。
内容的提问来源于stack exchange,提问作者Floge
相关产品推荐
相关产品推荐

