[英]java.io.UnsupportedEncodingException: application/json; charset=UTF-8
[英]How to change content type of MappingJacksonHttpMessageConverter from application/json;charset=UTF-8 to application/json
我有一個Spring REST Web服務,在我的控制器中,我使用MappingJacksonHttpMessageConverter
將我的返回模型轉換為JSON。 但是當我用firebug
檢查它時,有Content-Type=application/json;charset=UTF-8
。
此外,我試圖通過使用spring android rest模板從Android客戶端解析此結果但我不斷得到:
無法提取響應:沒有為響應類型找到合適的HttpMessageConverter [xxx.SamplePageActivity $ Result]和內容類型application / json; charset = UTF-8]
可能是android客戶端上的MappingJacksonHttpMessageConverter完全期望類型application/json
所以我的問題是如何改變spring的MappingJacksonHttpMessageConverter從application/json;charset=UTF-8
返回Content-Type application/json;charset=UTF-8
到application/json
。
這是我的視圖解析器配置。 它可能很有用:
<beans:bean
class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
<beans:property name="mediaTypes">
<beans:map>
<beans:entry key="html" value="text/html" />
<beans:entry key="json" value="application/json" />
</beans:map>
</beans:property>
<beans:property name="viewResolvers">
<beans:list>
<beans:bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<beans:property name="prefix" value="/WEB-INF/views/" />
<beans:property name="suffix" value="${dispatcher.suffix}" />
</beans:bean>
</beans:list>
</beans:property>
<beans:property name="defaultViews">
<beans:list>
<beans:bean
class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" />
</beans:list>
</beans:property>
</beans:bean>
<beans:bean id="messageAdapter"
class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<beans:property name="messageConverters">
<beans:list>
<!-- Support JSON -->
<beans:bean
class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" />
</beans:list>
</beans:property>
</beans:bean>
您可以使用supportedMediaTypes屬性更精確地配置MappingJacksonHttpMessageConverter,如下所示:
<bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" >
<property name="supportedMediaTypes">
<list>
<bean class="org.springframework.http.MediaType">
<constructor-arg value="application" />
<constructor-arg value="json" />
<constructor-arg value="#{T(java.nio.charset.Charset).forName('UTF-8')}"/>
</bean>
</list>
</property>
</bean>
根據文檔( http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/http/MediaType.html ),您可以設置類型,子類型和字符集,訂購-
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.