java - HTTP/1.1 415 处理 JSON 时不支持的媒体类型
问题描述
我的代码正在使用 Xml,但使用 Json 失败
使用 RestEasy UI 请求:
POST /api/people HTTP/1.1
Content-Type:application/json
{
"name":"developer",
"age":"25",
"address":"address"
}
类资源.java
package people;
@Path("/api")
public class Resource {
@GET
@Produces("text/plain")
@Path("helloworld")
public String helloWorld() {
return "Hello World!";
}
@POST
@Produces("text/plain")
@Consumes(MediaType.APPLICATION_JSON)
@Path("people")
public String updatePeople(People request) {
People p = new People();
p.setName(request.getName());
return p.getName();
}
}
和类 People.java
package people;
@XmlRootElement
public class People {
private String name;
private String age;
private String address;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
解决方案
将以下 jar 添加到您的类路径中。 jersey-media-json-jackson.jar
如果您使用的是 Maven,请将其添加到您的 POM.xml 文件中。
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jackson</artifactId>
<version>2.27</version>
</dependency>
推荐阅读
- ruby-on-rails - 从 Ruby 中杀死 Resque Workers
- python-3.x - 向量化三次样条插值 Python
- python - 文件未从 python cgi 完全上传
- r - 将矩阵添加到小标题
- spring-boot - Spring Boot 响应实体返回空集
- javascript - 素材卡内容溢出图标栏
- javascript - 更改输入值后,JS仍然显示旧值
- swiftui - 如何为 SwiftUI 动态 VStack 项创建 UI 测试?
- c - Azure IoT SDK 中的 json_object_set_string 与 json_object_dotset_string
- javascript - 用于同步 Discord 频道和 Twitch 聊天的 JavaScript 机器人