用于发布 JSON 的标准 spring mvc 控制器的 Katharsis 返回 400
Posted
技术标签:
【中文标题】用于发布 JSON 的标准 spring mvc 控制器的 Katharsis 返回 400【英文标题】:Katharsis with standard spring mvc controller for posting JSON returns 400 【发布时间】:2017-01-14 00:58:12 【问题描述】:我已将 Katharsis 与 spring-boot (MVC + Security) 集成在一起,对此我感到非常高兴。
@SpringBootApplication
@Import(KatharsisConfigV2.class)
@Configuration
public class Application
public static void main(String[] args)
SpringApplication.run(Application.class, args);
我开始使用额外的 spring mvc 控制器来设置安全性来处理登录和注销方法。
但是使用 RequestBody 注释参数将 json 转换为 java 对象,我收到 400 响应,告诉我缺少所需的正文。
@RequestMapping(value = "/auth/signup", method = RequestMethod.POST)
public @ResponseBody AuthenticationResponse signup(
@RequestBody AuthenticationRequest authenticationRequest)
...
当我删除 Katharsis 配置的导入时,一切正常。
@SpringBootApplication
//@Import(KatharsisConfigV2.class)
@Configuration
public class Application
public static void main(String[] args)
SpringApplication.run(Application.class, args);
如何调整我的项目配置以允许基本的 spring 控制器接受标准 JSON?
提前致谢
【问题讨论】:
如果您不显示您的代码,没有人可以帮助您。 你有没有想过这个问题? 【参考方案1】:response 的 "detail"
字段中的确切消息是什么? Katharsis-Spring 提供了不错的错误详细信息。这应该可以让您更好地了解到底出了什么问题。
请记住,JSON API 中的 POST
主体将 differ from how they look in regular Spring,例如您的有效负载中需要有一个"data"
字段。
您可能还需要在 application.properties
文件中配置 Katharsis。 Katharsis 无法处理请求,除非它是 configured properly。
希望这会有所帮助。
【讨论】:
以上是关于用于发布 JSON 的标准 spring mvc 控制器的 Katharsis 返回 400的主要内容,如果未能解决你的问题,请参考以下文章
在从 Spring MVC 作为 JSON 发送时动态忽略 Java 对象中的字段