Java 设置状态代码500

Java 设置状态代码500,java,html,xml,jsp,jakarta-ee,Java,Html,Xml,Jsp,Jakarta Ee,我正在开发一个RESTAPI,当通过发布XML文件发出post请求时,如果成功接收该文件,它将发送200 OK响应;如果XML文件缺少任何标记,则发送400;如果使用GET而不是post,则发送500错误响应。我能做前两个案例200和400,不知道如何在代码中添加500。我在这里张贴我的代码,请建议 if (dataFile==null) { try { response.sendError(HttpServletResponse.SC_BA

我正在开发一个RESTAPI,当通过发布XML文件发出post请求时,如果成功接收该文件,它将发送200 OK响应;如果XML文件缺少任何标记,则发送400;如果使用GET而不是post,则发送500错误响应。我能做前两个案例200和400,不知道如何在代码中添加500。我在这里张贴我的代码,请建议

  if (dataFile==null) {
            try {

            response.sendError(HttpServletResponse.SC_BAD_REQUEST, 
    "Failed to process content of file.");
            }
            catch (IOException e1) {
                LOGGER.error("Failed to send response due to error:
   " + e1.getMessage());   
            }
        }


        else{

        response.setStatus(HttpServletResponse.SC_OK);
        response.addHeader("Location", getResourceUri(dataFileMetadata,   
   request).toString());

从你的代码示例中,你很不清楚你想在那里做什么, 但我猜你说的是这样的:

@POST
@Path("/some/path")
@Consumes(MediaType.APPLICATION_XML)
public Response post(String someXML) {
    try {
        if (isMissingTag(someXML)) {
            return Response.status(Status.BAD_REQUEST).entity("error message goes here").build();
        }

        // do stuff

        return Response.ok().build();
    } catch (Exception e) {
        LOG.error("error message goes here", e);
        return Response.serverError().entity("error message goes here").build();
    }
}
如果有人试图用GET访问您的服务,您不需要返回任何内容,因为您首先没有将其作为端点发布


如果您对编写restful web服务感兴趣,我强烈建议您阅读。

您也可以分享方法签名吗?