gpt4 book ai didi

java - webservice @POST 返回 415 不支持的媒体类型

转载 作者:行者123 更新时间:2023-12-02 06:20:31 26 4
gpt4 key购买 nike

我在 jboss-as-7 上制作了 Web 服务,它可以使用 @GET 方法正常工作,但是当我尝试添加 @POST 时,我收到“415 不支持的媒体类型”。在客户端和服务器端进行了大量代码调整之后,现在我仅使用 REST 客户端进行测试。我在这里错过了什么吗?

网络服务:

@Stateless
@LocalBean
@Path("/RESTService")
public class ReservationsResource {

@EJB
private ReservationsSB reservationsSB;

@GET
@Produces("application/xml")
@Path("/reservation/{id}")
public Reservations getReservation(@PathParam("id") int id) {
return reservationsSB.getReservation(id);
}

@POST
@Consumes("application/xml")
@Path("/reservation/delete")
public Response deleteReservation(Reservations r){
edited = null;
reservationsSB.deleteReservation(r);

return Response.status(201).entity(r).build();
}

实体:

@Entity
@XmlRootElement
@Table(name="reservations")
public class Reservations {

@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private int id;

@Column
private String date;
private String owner;
private int active;

@ManyToOne
private Tables table;

public Reservations(String date, String owner, Tables table, int active) {
super();
this.date = date;
this.owner = owner;
this.table = table;
this.active = active;
}
...
}

REST 客户端请求:网址:http://localhost:8080/BarBar/RESTService/reservation/deletebody(与 getReservation() 返回的内容相同):

<reservations>
<active>1</active>
<date>2014-01-14 21:00:00.0</date>
<id>23</id>
<owner>dqf</owner>
<table>
<capacity>6</capacity>
<id>30</id>
<name>table 4</name>
</table>
</reservations>

最佳答案

确保将 Content-TypeAccept header 设置为 application/xml。此外,这不一定很重要,但请考虑将您的方法设置为 @DELETE 以使用适当的 REST 语义。

关于java - webservice @POST 返回 415 不支持的媒体类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21068910/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com