Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.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 HttpMediaTypeNotAcceptableException:无法使用com.fasterxml 2.5.1找到可接受的spring mvc 4.1.5表示形式_Java_Json_Spring_Spring Mvc_Jackson - Fatal编程技术网

Java HttpMediaTypeNotAcceptableException:无法使用com.fasterxml 2.5.1找到可接受的spring mvc 4.1.5表示形式

Java HttpMediaTypeNotAcceptableException:无法使用com.fasterxml 2.5.1找到可接受的spring mvc 4.1.5表示形式,java,json,spring,spring-mvc,jackson,Java,Json,Spring,Spring Mvc,Jackson,帮助-我还可以做什么来修复此错误?org.springframework.web.HttpMediaTypeNotAcceptableException::找不到可接受的表示形式 我认为我的项目配置正确,可以处理json restful请求。在过去的几天里,我阅读并应用了各种建议,但都无济于事。还有什么其他的想法我应该做不同的吗 我使用的是SpringMVC4.1.5和com.fasterXML2.5.1 我的pom.xml的一部分 com.fasterxml.jackson.core 杰克逊

帮助-我还可以做什么来修复此错误?org.springframework.web.HttpMediaTypeNotAcceptableException::找不到可接受的表示形式

我认为我的项目配置正确,可以处理json restful请求。在过去的几天里,我阅读并应用了各种建议,但都无济于事。还有什么其他的想法我应该做不同的吗

我使用的是SpringMVC4.1.5和com.fasterXML2.5.1

我的pom.xml的一部分


com.fasterxml.jackson.core
杰克逊注释
2.5.1
捆
com.fasterxml.jackson.core
杰克逊核心
2.5.1
捆
com.fasterxml.jackson.core
杰克逊数据绑定
2.5.1
捆
这是我的web.xml的一部分


org.springframework.web.context.ContextLoaderListener
appServlet
org.springframework.web.servlet.DispatcherServlet
上下文配置位置
/WEB-INF/spring/appServlet/servlet-context.xml
1.
appServlet
/
这是我的servlet-context.xml的一部分


这是我的控制器

package com.losgatos.controllers;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.losgatos.User;

@RestController
@RequestMapping( "user" )
public class UserController { 

    @RequestMapping( value = "data", produces="application/json" )
    public User getUser(){
        return new User();
    }   
}
下面是用户POJO

package com.losgatos;

import java.util.EnumSet;

public class User {

    public User(){
        id = 0;
        age = 22;
        name = "Titus Feng"; 
        alias = "tornado tie";
        roles = EnumSet.of( Role.NORMAL, Role.NEW );
    }

    private int id, age;
    private String name, alias;
    private EnumSet<Role> roles;

    //added getters and setters here

    public enum Role{
        NEW, NORMAL, ADMIN, MEMBER, DORMANT 
    }   
}
package com.losgatos;
导入java.util.EnumSet;
公共类用户{
公共用户(){
id=0;
年龄=22岁;
name=“Titus Feng”;
别名=“龙卷风领带”;
roles=EnumSet.of(Role.NORMAL,Role.NEW);
}
私人内部id,年龄;
私有字符串名称、别名;
私有枚举集角色;
//在这里添加了getter和setter
公共枚举角色{
新建、正常、管理、成员、休眠
}   
}

在spring上下文配置文件(dispatcherservlet.xml)中,您有:


并且您的控制器带有以下注释:

@RestController
@RequestMapping( "user" )
public class UserController { 
...
}
您的控制器类根本不会加载到容器中。顺便说一句,根据您的异常消息:

我发现了错误

org.springframework.web.HttpMediaTypeNotAcceptableException::可能 找不到可接受的代表

如果未在上下文文件中注册以下内容,则会引发此异常:

  • (您尚未在上下文文件中注册)
  • 如果类路径上不存在所需的JAR(您已经有了它)
  • 使用ENUM时,使用
    @JsonFormat(shape=JsonFormat.shape.OBJECT)注释ENUM类。
编辑: 在Spring 4.0.1.RELEASE及以下版本中,对我来说测试运行良好,单个JSON依赖项:

com.fasterxml.jackson.core 杰克逊数据绑定 2.4.3

和控制器类:

@RestController
@RequestMapping("/u")
public class UserRestController {

    @RequestMapping( value = "/data", produces="application/json" )
    public RestUser getUser(){
        return new RestUser();
    } 
}
得到:

建议,, 更改此项:


致:


;您需要将Jackson升级到2.3版或更高版本。请注意,工件groupId更改为
com.fasterxml

我最终通过:
正在从我的fasterxml.jackson pom.xml条目中删除
捆绑包

重新运行我的pom.xml文件
清理项目生成(项目->清理)

清理并重新启动服务器

谢谢您让我知道,@Brian。我已经用core.fasterxml库替换了org.codehaus。我继续得到相同的错误:类org.springframework.web.HttpMediaTypeNotAcceptableException发生::找不到可接受的表示形式我还注意到pom.xml文件的fasterxml依赖项标记中的错误,该标记表示缺少工件com.fasterxml.jackson.core:jackson core:bundle:2.5.1它并没有阻止maven安装core.fasterxml依赖项,这很好。感谢您的输入@Rembo。我的spring上下文文件已使用。Spring版本更喜欢它。我已经用@JsonFormat(shape=JsonFormat.shape.OBJECT)对枚举类进行了注释,但仍然收到相同的错误消息。缺少建议的组件扫描替换规则。你能添加它吗?嘿@Rembo,你能添加缺少的替换组件扫描规则吗?我应用了你的新组件扫描@Rembo,并继续得到相同的错误消息。你能告诉我们AJAX配置如何调用REST服务吗?目前,我直接从浏览器中调用,只是为了测试它是否也能像plannedSee一样工作
{"id":0,"age":22,"name":"Titus Feng","alias":"tornado tie","roles":["NEW","NORMAL"]}