Java 通过泽西岛的JAX-RS->;HTTP正文中未返回任何内容(方法完成且无错误)

Java 通过泽西岛的JAX-RS->;HTTP正文中未返回任何内容(方法完成且无错误),java,http,jakarta-ee,jersey,jax-rs,Java,Http,Jakarta Ee,Jersey,Jax Rs,我通过Jersey使用JAX-RS,我遇到了一个“路上的颠簸”。我有一个方法,应该在HTTP POST之后返回JSON对象。它确实成功地执行了,但没有返回JSON对象(除非我做了一些变通)。我希望有人能告诉我为什么这不能像我期望的那样起作用。请参阅以下代码: @Path("chatroom") @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) public class ChatroomResou

我通过Jersey使用JAX-RS,我遇到了一个“路上的颠簸”。我有一个方法,应该在HTTP POST之后返回JSON对象。它确实成功地执行了,但没有返回JSON对象(除非我做了一些变通)。我希望有人能告诉我为什么这不能像我期望的那样起作用。请参阅以下代码:

@Path("chatroom")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public class ChatroomResource {
ChatroomService service = new ChatroomService();
//this works properly and returns the object as json
@GET
public List<Chatroom> getChatrooms() {
    return service.getChatrooms();
}

/**********
 * This works, but does not return any content in response body
 *******/
@POST
public Chatroom addRoom(Chatroom room) {
    return service.addChatroom(room);
    /* 
     * This one does produce content body
     * service.addChatroom(room);
     * return room;
     */

}
}
可能有什么问题以及如何解决 根据您提供的表面细节,我相信以下指令返回的是
null

返回Cache.getchattooms().put(room.getRoomName(),room);
put(String,Chatroom)
方法中,我猜您正在将
Chatroom
实例添加到缓存中,但返回的是
null
而不是
Chatroom
实例

以下方面应起作用:

公共聊天室添加聊天室(聊天室){
Cache.getChatrooms().put(room.getRoomName(),room);
返回室;
}
更新1 正如您在评论中提到的,您正在使用实现缓存的

请注意,该方法返回哈希表中指定键的previous值,如果没有值,则返回
null
。有关详细信息,请考虑阅读

更新2 你曾经考虑过用A代替A吗?
如果同步成为一个问题,您可能会对一个问题感兴趣。

我也有同样的想法,但是我测试了:Chatroom test=Cache.getChatrooms().put(string,Chatroom);回归试验;这一切都很好,我能提供更多的细节来帮助你帮助我吗?“帮助我帮助你”KurdidTys:是的,考虑编辑你的问题,添加代码>代码(字符串,聊天室)方法..放(String,CaldHooin)是内置的java哈希表方法。我不是自己写的,因为它是JDK附带的。字符串Chatroom来自定义为HashTable chatrooms=new HashTable()的表@KurtisDurtis您在问题中的更新可能会混淆其他用户。你能考虑删除吗?还要注意,最后一段代码不会编译,因为
=
public Chatroom addChatroom(Chatroom room) {
    return Cache.getChatrooms().put(room.getRoomName(), room);
}