REST 中的 HTTP 204 错误(Dropwizard)

HTTP 204 error in REST (Dropwizard)

我遇到了 HTTP 204 错误问题。总是,当我尝试使用 POST 命令并将数据推送到 dropwizard 时,我有 204。我不知道为什么,我尝试解决它但代码看起来不错。

public class POIDefinition {
  //  int id;
    String description;
   // String location;

}
public class poisDAO implements poiDAO {

    private static List<POIDefinition> POI = new ArrayList<POIDefinition>();

    @Override
    public void addPOI(String description) {
        POIDefinition newPoi = new POIDefinition();
      //  newPoi.id = id;
        newPoi.description = description;
      //  newPoi.location = location;

        POI.add(newPoi);

    }

    @Override
    public List<POIDefinition> GetAllPois() {
        return (ArrayList<POIDefinition>) POI;
    }

    @Override
    public POIDefinition retrievePOI(int id) {
        return POI.get(id);
    }


    @Override
    public void updatePOI(POIDefinition pd) {
    }

    @Override
    public void removePOI(int id) {
        POI.remove(id);
    }
}

@Path("/poi")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public class POIResource {
    poiDAO pDAO;


    public POIResource(poiDAO pDAO)
    {
        this.pDAO = pDAO;
    }

    @POST
    @Path("add")
    public void addPOI(@QueryParam("addPOI") String description)
    {
        pDAO.addPOI(description);
    }


    @GET
    @Path("/getAllPois")
    public List<POIDefinition> getAllPois()
    {
        return pDAO.GetAllPois();
    }

    @GET
    @Path("/getPOI")
    public POIDefinition retreivePoi(@QueryParam("id") int id)
    {
        return pDAO.retrievePOI(id);
    }

    @POST
    @Path("/removePOI")
    @Consumes(MediaType.APPLICATION_JSON)
    public void removePoi(@QueryParam("removePOI") int id)
    {
        pDAO.removePOI(id);
    }
}

我有轨迹 0:0:0:0:0:0:0:1 - - [27/lut/2015:22:47:37 +0000] "POST /poi/add/?addPOI=test HTTP/1.1" 204 - "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.115 Safari/537.36" 1

几行代码之前,我尝试创建 class 包含更多对象,例如 id 和位置,但我不知道如何将这些数据添加到 rest-post 命令中线,我总是有同样的错误。

204 不是错误,它表示请求已成功处理并且 Web 服务没有return响应正文中的任何其他内容。

勾选W3C page explaining status codes

HTTP 状态代码编号 204 表示 "The server successfully processed the request, but is not returning any content. Usually used as a response to a successful delete request."

当您告诉应用程序添加元素时,应用程序以类似 "OK, I added it" 的方式响应是有道理的,就像它的行为一样。我希望它被添加到列表中,而不返回我刚刚添加的对象。检索它以进行报告是另一个完全独立的操作。