相关疑难解决方法(0)

Spring MVC:不反序列化JSON请求体

我正在开发一个Spring MVC项目,我需要完成的任务之一要求我在POST请求中通过用户发送一串JSON数据.我知道Spring会使用Jackson将JSON反序列化为对象,但如果我尝试类似以下内容:

@RequestMapping(value = "/test", method = RequestMethod.POST)
public void doSomething(@RequestBody String json) {
    // do something
}
Run Code Online (Sandbox Code Playgroud)

我只是回到HTTP 400 Bad Request("客户端发送的请求在语法上是不正确的.").

如何将客户端发送的原始JSON作为字符串?

java json spring-mvc

31
推荐指数
2
解决办法
6万
查看次数

Spring的@RequestBody在POST上提供空字符串

我有一个Spring 3.0.5.RELEASE的应用程序试图使用@RequestBody获取帖子的完整内容.调用该方法,但传递的字符串始终为空.我通过放置断点检查了StringHttpMessageConverter是否被调用,但内部HttpInputMessage是空的.

我已经看过Jetty和Tomcat的这个问题,所以我放弃了容器的问题.

这是我的样本控制器:

@Controller
@RequestMapping("/")
public class SubscriptionController {
    @RequestMapping(value = "/requestbody", method = RequestMethod.POST)
    public ModelAndView mycustomAction(@RequestBody String body) {

        // body is always empty
        Logger.getLogger(this.getClass()).debug("REQUEST BODY '" + body + "'");
        return new ModelAndView("empty");
    }
}
Run Code Online (Sandbox Code Playgroud)

我的应用程序上下文定义如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
        http://www.springframework.org/schema/context 
        http://www.springframework.org/schema/context/spring-context-3.0.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">

    <!-- Enable auto detection of controllers -->
    <context:component-scan base-package="com.big.viajerotelcel.controller" />

    <!--
        use annotation driven mvc and one single validator with JSR-303
        standard
    -->
    <mvc:annotation-driven …
Run Code Online (Sandbox Code Playgroud)

java spring spring-mvc

9
推荐指数
1
解决办法
1万
查看次数

标签 统计

java ×2

spring-mvc ×2

json ×1

spring ×1