HttpMediaTypeNotAcceptableException

Posted

技术标签:

【中文标题】HttpMediaTypeNotAcceptableException【英文标题】: 【发布时间】:2011-09-17 04:37:53 【问题描述】:

我的 jQuery 函数有问题我想要实现的是在列表框中填充数据

javascript 函数

function load() 
        $.getJSON('$findAdminGroupsURL', 
            ajax : 'true'
        , function(data) 
            var html = '<option value="">Groups</option>';
            var len = data.length;
            for ( var i = 0; i < len; i++) 
                html += '<option value="' + data[i].name + '">' + data[i].name
                        + '</option>';
            
            html += '</option>';

            $('#selection').html(html);
        );
    

服务器端是

@RequestMapping(value = "groups", method = RequestMethod.GET)
    public @ResponseBody
    List<Group> getGroups() 
        return this.businessGroups();
    

我在加载时调用 load() 函数,它触发函数 getGroups() 并成功返回列表,但问题是 getGroups() 完成后

function(data) 不加载永远不会进入该函数,错误是

org.springframework.web.: 找不到可接受的 表示

我不能发回一个 Group 对象列表,还是它必须是 Java 原始类型?

【问题讨论】:

【参考方案1】:

我今天发现了一个类似的帖子..

Spring's Json not being resolved with appropriate response

希望对你有帮助

http://forum.springsource.org/showthread.php?85034-HttpMediaTypeNotAcceptableException-(always)

【讨论】:

【参考方案2】:

我不确定您使用的是哪个春季版本。我遇到了同样的问题,我通过将以下杰克逊罐子添加到我的 classpath.my spring version is 3.2.2

来解决它
jackson-mapper-asl
jackson-core-asl

这是我的控制器

@RequestMapping(value="/name", method = RequestMethod.GET)
public @ResponseBody List<Supplier> getSuppliers(@PathVariable String name) 


    searchDAO = (SearchDAO) SpringApplicationContext.getBean("searchDAO");
    List<Supplier> suppliers = null;
    try 
        suppliers = searchDAO.searchSuppliersByZipCode(name);
        //assertTrue(suppliers.size()>=1);
     catch (SQLException e) 
        // TODO Auto-generated catch block
        e.printStackTrace();
    

    return suppliers;


我的应用程序上下文中只有 mvc 注释,不需要显式的内容协商。当您有 @ResponseBody 时,默认为 json 格式,并且将考虑使用 jackson jar 转换您的 pojo。

【讨论】:

以上是关于HttpMediaTypeNotAcceptableException的主要内容,如果未能解决你的问题,请参考以下文章