Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java NetworkError:415不支持的媒体类型-linux服务器上的Tomcat_Java_Spring Mvc_Tomcat7_Http Status Code 415 - Fatal编程技术网

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

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

我正在向POST url发送一些json数据。此代码在本地环境(tomcat+windows)中运行良好,但在生产环境(tomcat+linux)中不起作用已经提到了各种链接,但没有一个能帮到我。

问题操作系统与生产环境,也我早就从服务器上删除了一些文件,我怀疑tomcat可能已经损坏,但其余所有的url的工作正常。这是我正在做的新发展

如果我点击FirefoxREST客户端,也会有同样的行为

错误

@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