由IDEA构建的SpringMVC:未找到类型为

时间:2018-09-06 13:49:12

标签: java spring

我使用IDEA构建基于SpringMVC的简单RESTful服务器。但是@RestController和@ResponseBody无法通过jackson JSON将POJO转换为JSON。

dispatcher-servlet.xml 中:

<mvc:annotation-driven/>

pom.xml 中:

    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
        <version>2.9.5</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>2.9.5</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.9.5</version>
    </dependency>

我的控制器:

@RestController
@RequestMapping("/test")
public class TestController {

    @GetMapping("/one")
    public One getOne() {
        return new One(1);
    }
}

我的POJO:

public class One {
    public One(int number) {
        this.number = number;
    }

    public int getNumber() {
        return number;
    }

    public void setNumber(int number) {
        this.number = number;
    }

    private int number;

}

但是我仍然得到找不到类型返回值的转换器错误。 我不知道为什么我遇到了一些配置或其他东西吗?

2 个答案:

答案 0 :(得分:0)

尝试将其放入您的dispatcher-servlet.xml:

<mvc:annotation-driven>
     <mvc:message-converters>
            <bean class="org.springframework.http.converter.StringHttpMessageConverter"/>
            <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/>
   </mvc:message-converters>
</mvc:annotation-driven>

答案 1 :(得分:0)

您需要指定产生/消费以定义所需的数据类型,例如:

@RestController
@RequestMapping("/test", produces = {MediaType.APPLICATION_JSON_VALUE})
public class TestController {

    @GetMapping("/one")
    public One getOne() {
        return new One(1);
    }
}