当前位置:首页 > 开发 > 行业应用 > 正文

HttpMediaTypeNotAcceptableException的解决过程

发表于: 2014-11-08   作者:aoyouzi   来源:转载   浏览次数:
摘要: 今儿的Web项目中突然报错: HttpMediaTypeNotAcceptableException: Could not find acceptable representation   涉及接口是 @RequestMapping(value = "/X/XX/", produces = "text/plain;charset=UTF-8"

今儿的Web项目中突然报错:

HttpMediaTypeNotAcceptableException: Could not find acceptable representation

 

涉及接口是

@RequestMapping(value = "/X/XX/", produces = "text/plain;charset=UTF-8")//

    @ResponseBody

    public String XXX(ModelAndView view, String XXX) {

 

       return “”;

}

 

通过日志分析,return前均正常执行,且该部分代码本期未作改动,前期代码运行OK。

 

在网上查该异常的原因主要是jackson jar的缺少所致,但查询POM,jackson加载正常。

 

那必定和本期所加代码相关。本期却有其他功能代码加入,但功能代码均彼此独立,公用的只有配置代码,即:

private static final Charset UTF8 = Charset.forName("UTF-8");

     @Override

     public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {

         StringHttpMessageConverter stringConverter = new StringHttpMessageConverter();

         stringConverter.setSupportedMediaTypes(Arrays.asList(new MediaType("text", "plain", UTF8)));

         stringConverter.setSupportedMediaTypes(Arrays.asList(new MediaType("text", "html", UTF8)));

         stringConverter.setSupportedMediaTypes(Arrays.asList(new MediaType("application", "xml",

               UTF8)));

         stringConverter.setSupportedMediaTypes(Arrays.asList(new MediaType("application", "json",

                UTF8)));

         converters.add(stringConverter);

     }

仔细看代码 突然发现原本添加4中MediaType,其实最后生效的也只有一种,即最后一种,ResponseBody按次执行后,JS那边虽有收到返回数据,但因格式问题无法处理,因此报错404.后修改如下:

 

private static final Charset UTF8 = Charset.forName("UTF-8");

     @Override

     public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {

         StringHttpMessageConverter stringConverter = new StringHttpMessageConverter();

         List<MediaType> list = new ArrayList<MediaType>();

         list.add(new MediaType("text", "plain", UTF8));

         list.add(new MediaType("text", "html", UTF8));

         list.add(new MediaType("application", "xml",UTF8));

         list.add(new MediaType("application", "json",UTF8));

         stringConverter.setSupportedMediaTypes(list);

         //stringConverter.setSupportedMediaTypes(Arrays.asList(new MediaType("text", "plain", UTF8)));

         //stringConverter.setSupportedMediaTypes(Arrays.asList(new MediaType("text", "html", UTF8)));

         //stringConverter.setSupportedMediaTypes(Arrays.asList(new MediaType("application", "xml",

         //       UTF8)));

         //stringConverter.setSupportedMediaTypes(Arrays.asList(new MediaType("application", "json",

          //       UTF8)));

         converters.add(stringConverter);

     }

运行Ok

HttpMediaTypeNotAcceptableException的解决过程

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
起因是我们的集群应用(3台机器)新版本测试过程中,一般的JVM内存占用 都在1G左右, 但在运行了一段
本人是只菜鸟,没有接触过OpenWrt,只是平时都是在Linux下做开发。习惯了Linux的开发环境。 本人的
今天在写一个小的管理系统的时候,老是遇见一个问题,数据库连接断开导致空指针的现象出现。 以前写
2013-02-23 不折腾不舒服(>_<)。在虚拟机上运行Ubuntu程序一多就明显卡顿,感觉效率不高。为
Sql Server服务远程过程调用失败解决 问题: 今天SQL数据库登录不上了,然后想启动Sql实例,却发现
http://www.infoq.com/cn/articles/WebScan-CI 一. 当前Web应用安全现状 随着中国互联网金融的爆发
1 AlertTest.h找不到 问题成因:HelloCpp工程中头文件搜索路径没有增加Classes目录,需要自己加进去.(
今天尝试在本机安装oracle11g,下载了两个文件分别是: win64_11gR2_database_1of2.zip、win64_11gR
PL/SQL 错误过程、函数及解决方案笔记 1、創建一個過程,利用 cursor將一個表中的兩個字段的內容,
在dbsnake 上看到的这篇文章,转过来。 主要还是学习解决问题的一个思路。这个往往比问题的解决更重
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号