因此,我试图创建一个使用json的简单Web服务帖子。但是我收到错误RESTEASY002010: Failed to execute: javax.ws.rs.NotSupportedException: RESTEASY003065: Cannot consume content type
我的网络服务:
@POST
@Produces(MediaType.APPLICATION_XML)
@Path("teste1")
@Consumes(MediaType.APPLICATION_JSON)
public Response teste1(String product) {
String result = "Product created : " + product;
System.out.println("resultado");
System.out.println(result);
return Response.ok() //200
.entity("<erro> none </erro>")
.header("Access-Control-Allow-Origin", "*")
.header("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT")
.header("Access-Control-Allow-Headers", "Content-Type, Accept, X-Requested-With").build();
}
我也尝试这样做:
@Consumes("application/json")
但是我遇到了同样的错误。 如果可以的话,我可以使它起作用:
@Consumes("*/*")
但是当我说它使用json时,我不明白为什么它不起作用。要测试Web服务,我正在使用https://apitester.com/。随着以下Post Data:
{
"key" : "value",
"array" : [
{ "key" : 1 },
{ "key" : 2, "dictionary": {
"a": "Apple",
"b": "Butterfly",
"c": "Cat",
"d": "Dog"
} },
{ "key" : 3 }
]
}
答案 0 :(得分:0)
一般而言
@Consumes("application/json")
指定Web服务可以处理的内容媒体类型。
但是您可能还需要在Content-Type
标头中为您的请求明确指定适当的类型。
我对https://apitester.com不熟悉,但是默认情况下它可能不会发送 Content-Type 标头
例如,在这种情况下,服务器可以将请求正文视为纯文本。该请求不会路由到您的端点,因为它不是为纯文本设计的。
设置@Consumes(*/*)
可以解决此问题,因为错误的媒体类型也会与该模式匹配。
能否请确保您将POST请求发送给Content-Type: application/json
?