当前位置: 首页 > 知识库问答 >
问题:

Restful服务:发送HTTP 405而不是HTTP 500错误

云远
2023-03-14
@POST
@Path("/create")
@Consumes({ MediaType.APPLICATION_JSON })
@Produces({ MediaType.APPLICATION_JSON })
public Response createEntity(MyEntity entity) 
{
 EntityRequest req = new EntityRequest();
 req.setName(entity.getName());//throws NPE here
 //few more lines to send req to backend and get the response back
 return response;
}
@GET
@Path("/entity/{entityId}")
@Consumes({ MediaType.APPLICATION_JSON })
@Produces({ MediaType.APPLICATION_JSON})
public Response findMyEntityById(
        @PathParam("entityId") String id) 
{
  EntityRequest req = new EntityRequest();
  //similar stuff and sends the response back
  return response;
}

共有1个答案

从渊
2023-03-14

第一种情况很清楚。405表示“方法不允许”。如果特定的URL不能回复当前方法的请求,则通常由容器或框架引发。但是您确实使用了正确的方法,但使用了空的主体,这将导致代码中的NPE。在这种情况下,预期状态为500。

问题2尚不清楚。你应该发送更多细节。您要么不发送帖子,要么URL可以接受帖子。请仔细检查并发送有关您的配置的详细信息,一些代码片段等。

编辑:

 类似资料:
  • 当我试图从“smtpout.asia.secureserver.net”发送邮件时,它是从本地主机而不是“secureserver”主机发送的。下面是代码: catt(MessagingExc的e){抛出新的Runtime异常(e);} 调试: 但是如果我将主机更改为“smtp.gmail.com”,它就可以正常工作。

  • 我正在使用Spring Boot创建JavaREST应用程序。我已经成功地加载了这个示例,并尝试将JAR文件转换为Spring Boot站点上显示的WAR文件。我修改了我的pom.xml文件,添加了: 然后我修改了Application.java类来初始化servlet(这是Spring Boot用来替换web.xml文件的): 我拿到了我的护照。WAR文件已生成,但当我将其部署到Tomcat上时

  • 我无法理解HTML5s服务器发送的事件是否真的适合ReST体系结构。我知道并非HTML5/HTTP的所有方面都需要适合ReST架构。但我想从专家那里知道HTTP的哪一半是SSE(ReSTful的一半还是另一半!)。 一种观点是它是ReSTful的,因为客户端向服务器发出了一个“初始”HTTP GET请求,其余的只能看作是不同内容类型的部分内容响应(“文本/事件流”) 发送的请求不知道有多少响应将作

  • 我正在Java上实现一个Restful Web服务,没有框架。我的想法是从文件服务器发送图像,因为将图像存储在数据库中会降低服务器的速度。目前,我有以下返回json内容的代码: 想法?提前谢谢。

  • 泽西-客户端 泽西-普通 jersey-container-servlet jersey-container-servlet-core 泽西-服务器 如果我这样做,我总是得到以下异常: 经过一些研究,我发现我应该添加jersey-servlet-1.12.jar,而不是从上面发布的下载源添加jar。所以我做了。我将其添加到web.xml中

  • 我有一个Mule流,其中我使用Mule的CXF入站endpoint公开了一个SOAP服务。我配置了和。通过这种CXF入站endpoint配置,它能够验证传入的SOAP请求,并在出现模式验证错误时抛出SOAP错误。到现在为止,一直都还不错。 现在,我想定制SOAP故障响应,以防模式验证错误。 我根本不想发送SOAP Fault,相反,我想在响应正文中发送如下内容 有谁能告诉我如何做到这一点吗?