NetworkError:415不支持的媒体类型 - Linux服务器上的Tomcat

时间:2016-08-05 18:33:09

标签: java spring-mvc tomcat7 http-status-code-415

我正在向POST网址发送一些json数据。此代码在本地环境(tomcat + windows)中工作正常,但不适用于生产环境(Tomcat + linux)。 已经提到各种链接,但没有人帮助我。

使用生产环境发布操作系统,我也很久以前从服务器上删除了一些文件,我怀疑tomcat可能已经损坏,但是所有网址都正常工作。这是我正在做的新发展。

如果我通过firefox rest客户端点击也会有相同的行为。

错误

服务器拒绝了此请求,因为请求实体的格式不受所请求方法所请求资源的支持

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);          
        }
    });

Spring控制器

@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>

2 个答案:

答案 0 :(得分:0)

从错误中说,客户端没有按服务器期望的类型发送请求,客户端发送json,我们已经定义 cosumes = MediaType.APPLICATION_JSON_VALUE 如果我们用替换它仅限MediaType.APPLICATION_JSON ,并且您还指定了accept参数,以便将其删除或将produce属性添加到控制器中的 application / json

答案 1 :(得分:0)

上述评论和答案值得一读,可能只是少数案例的解决方案。

在我的情况下,我有一个属性Map<String,String>,我需要忽略它。

所以我补充说,

@JsonIgnore
Map<String,String>