如何在Spring 4中使用rapidxml Jackson JSON序列化
当我使用以下curl调用它时,为什么我的Spring控制器不返回媒体类型application/json
:
curl -v -i -H "Accept: application/json" localhost:8080/properties-ws/prop/2322
我已经阅读了关于这个主题的所有其他问题和答案,没有一个解决我的具体问题。
我正在使用Spring 4,并且有一个简单的Controller和pom。
控制器方法
@RequestMapping(value="/prop/{character}", method=RequestMethod.GET, produces={MediaType.APPLICATION_JSON_VALUE}) public @ResponseBody CharData getData(@PathVariable(value="character") int codePoint) { CharData chData = null; chData = CharPropertiesService.getProperties(codePoint); return chData; }
POM文件依赖jackson
我包括了fastxml jackson-databind工件版本2.3.3
这是pom:
4.0.0 com.joconner.unicode 0.0.1-SNAPSHOT properties-ws properties-ws war 1.7 4.0.3.RELEASE 1.6.9 1.6.1 UTF-8 com.joconner.unicode properties 1.0.0-SNAPSHOT compile com.fasterxml.jackson.core jackson-databind 2.3.3 junit junit 4.8.2 test org.slf4j slf4j-api ${org.slf4j-version} org.slf4j jcl-over-slf4j ${org.slf4j-version} runtime org.slf4j slf4j-log4j12 ${org.slf4j-version} runtime log4j log4j 1.2.15 javax.mail mail javax.jms jms com.sun.jdmk jmxtools com.sun.jmx jmxri runtime javax.servlet servlet-api 2.5 provided javax.servlet.jsp jsp-api 2.1 provided javax.servlet jstl 1.2 org.springframework spring-webmvc ${org.springframework-version} org.springframework spring-test ${org.springframework-version} org.springframework spring-context ${org.springframework-version} commons-logging commons-logging
控制器返回HTTP响应406,并带有以下消息:
由该请求标识的资源仅能够根据请求“接受”报头生成具有不可接受的特性的响应。
关于我没有正确配置的任何想法?
感谢Sotirios,我已经解决了我的问题。 我不确定为什么这会解决它,但确实如此。
我只是将以下内容放在我的servlet-context.xml中:
而已。 这就是全部,现在Spring返回了我期望的对象的JSON表示。