Java NetworkError:415不支持的媒体类型-linux服务器上的Tomcat
我正在向POST url发送一些json数据。此代码在本地环境(tomcat+windows)中运行良好,但在生产环境(tomcat+linux)中不起作用已经提到了各种链接,但没有一个能帮到我。 问题操作系统与生产环境,也我早就从服务器上删除了一些文件,我怀疑tomcat可能已经损坏,但其余所有的url的工作正常。这是我正在做的新发展 如果我点击FirefoxREST客户端,也会有同样的行为 错误Java NetworkError:415不支持的媒体类型-linux服务器上的Tomcat,java,spring-mvc,tomcat7,http-status-code-415,Java,Spring Mvc,Tomcat7,Http Status Code 415,我正在向POST url发送一些json数据。此代码在本地环境(tomcat+windows)中运行良好,但在生产环境(tomcat+linux)中不起作用已经提到了各种链接,但没有一个能帮到我。 问题操作系统与生产环境,也我早就从服务器上删除了一些文件,我怀疑tomcat可能已经损坏,但其余所有的url的工作正常。这是我正在做的新发展 如果我点击FirefoxREST客户端,也会有同样的行为 错误 @RequestMapping(value = "/add", method = Request
@RequestMapping(value = "/add", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
public @ResponseBody String addDishDetails(
@RequestBody MyPojo pojo) {
return "success";
}
服务器拒绝了此请求,因为请求实体的格式不受请求方法的请求资源的支持
Jquery代码
$.ajax({
type : "POST",
url : "/add",
data : JSON.stringify(data),
dataType: 'json',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
success : function(resp) {
console.log(resp);
}
});
弹簧控制器
@RequestMapping(value = "/add", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
public @ResponseBody String addDishDetails(
@RequestBody MyPojo pojo) {
return "success";
}
pom.xml
下面还添加了罐子
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.13</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.5.3</version>
</dependency>
org.codehaus.jackson
杰克逊地图绘制者
1.9.13
com.fasterxml.jackson.core
杰克逊数据绑定
2.5.3
从错误中可以看出,客户端未发送服务器所期望的类型的请求,客户端发送json,我们已经定义了cosumes=MediaType.APPLICATION\u json\u VALUE如果我们仅将其替换为MediaType.APPLICATION\u json,并且您还指定了accept参数,因此可以将其删除或将Product属性添加到控制器中的APPLICATION/json。上述注释和答案值得一读,可能是少数情况下的解决方案
在我的例子中,我有一个属性映射
,我需要忽略它
所以我补充说,
@JsonIgnore
Map<String,String>
@JsonIgnore
地图
为什么要使用不同的主要版本的Jackson?这些根本不兼容。@SotiriosDelimanolis但我在看完一些答案后添加了这个作为解决办法,在添加这个之前,在本地它可以正常工作,但在产品中不工作。不,这没有意义。不要胡闹。只使用Jackson 2。然后在Spring上启用调试日志记录,并检查它显示了什么。@SotiriosDelimanolis您的意思是说“jackson mapper asl 1.9.13”和“jackson databind 2.0.0”不,您应该有三个最新版本。完全删除org.codehaus
版本。消耗
需要字符串
值<代码>媒体类型。应用程序\u JSON引用一个enum
。