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

Jersey返回HTTP状态405-不允许使用方法

杜英叡
2023-03-14

我有一个使用Jersey的非常简单的endpoint。我的URL是静态的,它不需要任何请求参数。看起来是这样的:

@GET
@Path("/mydata")
@Produces(javax.ws.rs.core.MediaType.APPLICATION_JSON)  
public String getData()  {
  return "{'name': 'value'}";
}

但是,每当我请求此URL时,我总是会收到一个HTTP状态代码405-方法不允许。

奇怪的是,如果我更改路径注释并定义一个路径变量,例如路径(“/图表/{blah}”),它就可以正常工作。

有人知道为什么我必须定义一个路径变量才能使其工作吗?我不需要路径变量,添加一个只是为了获得200响应似乎很傻。

共有3个答案

王炜
2023-03-14

我想可能是因为你指定了

@Produces(MediaType.APPLICATION_JSON).

1) 也许你应该试着在终端上运行以下程序

curl -i -X GET -H 'Accept:application/json' http://localhost:8080/mydata

2) 或尝试更改为

@Produces({MediaType.APPLICATION_JSON, MediaType.TEXT_HTML})
丁曦
2023-03-14

注释类而不是方法:

@Path("/mydata")
public class MyClass(){

@GET
@Produces(javax.ws.rs.core.MediaType.APPLICATION_JSON)  
public String getData()  {
  return "{'name': 'value'}";
}

}

我不知道为什么但这也给我带来了问题

乜昆
2023-03-14

谢谢你的建议。结果是我愚蠢地为我的jersey SpringServlet输入了错误的url模式。它是<代码>/<代码>而不是<代码>/*<代码>

<servlet>
   <servlet-name>MyServlet</servlet-name>
    <servlet-class>com.sun.jersey.spi.spring.container.servlet.SpringServlet</servlet-class>
</servlet>

<url-pattern>/*</url-pattern>

<servlet-mapping>
   <servlet-name>Chart Service</servlet-name>
   <url-pattern>/*</url-pattern>
</servlet-mapping>
 类似资料:
  • 我正在尝试使用Tomcat 7和Jersey 2构建一个简单的REST JSON api。所有的工作都做得很好。但投递/推杆返回了令人恐惧的405。 我知道这是一个很受欢迎的问题。但我已经研究了所有其他答案,它们对我的情况没有帮助。 我正在本地Linux工作站上运行它。我正在使用真正的Oracle JDK、Eclipse Mars、Tomcat 7和Maven来处理依赖关系。 作为同一个应用程序的

  • 我的代码是使用java servlet和JDBC存储和检索数据库中的信息。程序运行的IDE中没有错误,但行没有插入到数据库中,并且firefox浏览器中出现错误<以下代码来自SERVLET文件 以下代码来自HTML文件 以下代码来自web。xml文件 错误是:在firefox浏览器中获得的错误

  • 问题内容: 经过研究后,我在问这个问题。我确实遵循了针对此类错误的解决方案,但对我不起作用。在下面的代码中出现错误的任何建议。我正在创建一个REST API,但是当我请求url时却出现405错误。下面是URI正在请求。 下面是代码片段。 web.xml: 问题答案: 将此更改为并尝试,

  • 我制作了一个具有三个路径参数的POST web服务。 但当我尝试通过url请求此web服务时,我得到HTTP状态405-不允许使用该方法 但是同样的方法有效,如果我将Web服务更改为@GET 请求URL: 这是我得到的回应 任何帮助将不胜感激!

  • 我有以下发帖方法, 我正在使用fiddler发布以下请求, 注意:还没有为spring配置安全性。

  • 问题内容: 我打算使用Ajax将跨域请求发送到soap Web服务。Web服务的URL是:http://example1.asmx?op = GetVOD 我的代码: 在IIS 7服务器端,我已经将这些行添加到文件web.config中 当我在Chrome上运行客户端代码时,出现405错误: 有谁知道如何解决这个问题? 预先感谢 问题答案: 听起来像Web DAV正在阻碍。这是删除它的配置: ht