Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.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
Javascript Java POST请求不支持的媒体类型_Javascript_Java_Post - Fatal编程技术网

Javascript Java POST请求不支持的媒体类型

Javascript Java POST请求不支持的媒体类型,javascript,java,post,Javascript,Java,Post,我有一个java类: @XmlRootElement public class RoomInfo { @XmlElement public String name; @XmlElement public String w; @XmlElement public String h; @XmlElement public String size; } 以及restful web服务: @Path("/create") public c

我有一个java类:

@XmlRootElement
public class RoomInfo {
    @XmlElement
    public String name;
    @XmlElement
    public String w;
    @XmlElement
    public String h;
    @XmlElement
    public String size;
}
以及restful web服务:

@Path("/create")
public class Create {
    @POST
    @Consumes("application/json")
    public void getInfo(RoomInfo room){
        System.out.println("signal");
        System.out.println(room.name);
        System.out.println(room.w);
        System.out.println(room.h);
        System.out.println(room.size);
    }
}
我正在尝试使用javascript发送带有json参数的POST请求:

var xh = new XMLHttpRequest();
var json = JSON.stringify({
    name: "Room1",
    w: "2",
    h: "4",
    size: "12"
});

xh.open("POST", 'http://localhost:8080/create', true);
xh.setRequestHeader('Content-type', 'application/json; charset=utf-8');
console.log(json);
xh.send(json);
但我在浏览器的控制台中得到以下输出:

{“名称”:“房间1”,“w”:“2”,“h”:“4”,“大小”:“12”}

加载资源失败:服务器响应状态为415(不支持的媒体类型)

我知道由于某些原因,我发送的数据无法放入我的RoomInfo对象,但我不明白为什么

服务器控制台还显示以下内容: com.sun.jersey.spi.container.ContainerRequest.getEntity是Java类com.example.jersey.RoomInfo、Java类com.example.jersey.RoomInfo和MIME媒体类型application/json的消息体读取器;未找到字符集=UTF-8。 与MIME媒体类型兼容的已注册邮件正文读取器包括:
应用程序/json;charset=UTF-8->

要使文章正常工作,您的文章需要设置“application/json”的“Content-Type”标题

然后您的POST方法可能还需要@products(MediaType.APPLICATION_JSON)


此外,POJO确实需要如上所述的默认构造函数

您的服务器控制台上是否有任何异常?@gurvinder372是的,我会将其添加到postsomething类似的@gurvinder372,但我已经有了一个POJO,向其添加构造函数没有任何效果,其他一切都与该答案相同您是否有库设置来序列化和反序列化Java应用程序中的JSON?为了使我的RESTful服务能够从JSON转换,我必须在扩展javax.ws.rs.core.Application的类的构造函数中提供JacksonJsonProvider的实例。还有其他的图书馆,但杰克逊是我唯一真正有经验的图书馆。