Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java IDEA构建的SpringMVC:未找到类型为的返回值的转换器_Java_Spring - Fatal编程技术网

Java IDEA构建的SpringMVC:未找到类型为的返回值的转换器

Java IDEA构建的SpringMVC:未找到类型为的返回值的转换器,java,spring,Java,Spring,我使用IDEA基于SpringMVC构建了一个简单的RESTful服务器。但是@RestController和@ResponseBody无法通过jackson JSON将POJO转换为JSON 在调度程序servlet.xml中: <mvc:annotation-driven/> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <a

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

在调度程序servlet.xml中:

<mvc:annotation-driven/>
    <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>
我的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;
}

但是我仍然没有找到类型为error的返回值的转换器。
我不知道为什么。我是否遇到了一些配置或其他内容?

尝试将其放入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>

您需要指定products/consumes来定义所需的数据类型,例如:

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

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

我尝试了此操作,但出现了新错误:嵌套异常为java.lang.NoClassDefFoundError:com/fasterxml/jackson/core/util/DefaultPrettyPrinter$Indenter org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:313)我已经解决了这个问题。我忘了将罐子添加到工件。。。。非常感谢。我通过以下方式解决了这个问题:项目结构->工件->将jacksonXXX.jar添加到输出根。。。。。
@RestController
@RequestMapping("/test", produces = {MediaType.APPLICATION_JSON_VALUE})
public class TestController {

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