当前位置: 首页 > 面试题库 >

HTTP状态405-Rest API的方法不允许错误

牟华翰
2023-03-14
问题内容

经过研究后,我在问这个问题。我确实遵循了针对此类错误的解决方案,但对我不起作用。在下面的代码中出现错误的任何建议。我正在创建一个REST
API,但是当我请求url时却出现405错误。下面是URI正在请求。

    http://localhost:8080/Project/services/start/version

下面是代码片段。

@Path("/start")

public class StartService {
@GET
@Path("/version")
@Produces({"text/plain","application/xml","application/json"})
public String getVersion() {
    String ver="";

    try{


          Runtime rt = Runtime.getRuntime();
          Process pr = rt.exec("C:\\server\\dgr -v" );

          BufferedReader stdInput = new BufferedReader(new InputStreamReader
(pr.getInputStream()));
          BufferedReader input = new BufferedReader(stdInput);
         // String ver ="";
          StringBuffer verOutput = new StringBuffer();
                while((ver =  input.readLine()) != null){
                    verOutput.append(ver + "\n");
                    System.out.println(ver);
                }


        }catch (Throwable t)  
          {  
            t.printStackTrace();  
          }


        finally {

        }
    return ver;  }

}

web.xml:

<web-app 
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">

<servlet>
<display-name>eLicensingWeb</display-name>      
    <servlet-name>JAX-RS REST</servlet-name>
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
     <init-param>
         <param-name>com.sun.jersey.config.property.packages</param-name>
        <param-value>com.cem.plc.service</param-value>
    </init-param>

    <load-on-startup>1</load-on-startup>
</servlet>




<servlet-mapping>
    <servlet-name>JAX-RS REST</servlet-name>
    <url-pattern>/services/*</url-pattern>
</servlet-mapping>


<welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
</welcome-file-list>


</web-app>

问题答案:

@Produces({"text/plain","application/xml","application/json"})将此更改为@Produces("text/plain")并尝试,



 类似资料:
  • 我有一个使用Jersey的非常简单的endpoint。我的URL是静态的,它不需要任何请求参数。看起来是这样的: 但是,每当我请求此URL时,我总是会收到一个HTTP状态代码405-方法不允许。 奇怪的是,如果我更改路径注释并定义一个路径变量,例如路径(“/图表/{blah}”),它就可以正常工作。 有人知道为什么我必须定义一个路径变量才能使其工作吗?我不需要路径变量,添加一个只是为了获得200响

  • 我使用指南创建了一个简单的Spring Boot REST服务,当我发帖到时,遇到以下错误 -“状态”:405,“错误”:“不允许使用方法”,“异常”:“org.springframework.web.HttpRequestMethodNotSupportedException”,“消息”:“不支持请求方法'POST'”, 我没有找到任何关于如何解决错误的信息。我使用的是版本1.3.2。发布并使用

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

  • 问题内容: 我正在开发flask注册表格,但收到错误消息: 码: registration.html: 当我访问时,我收到错误消息。我究竟做错了什么? 问题答案: 这是因为在定义路由时仅允许POST请求。 当你在浏览器中访问时,它将首先执行GET请求。只有提交表单后,浏览器才会执行POST。因此,对于像你这样的自我提交表单,你需要同时处理两者。 使用 应该管用。

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

  • 我正在尝试使用angularJs和$http发布一个表单。post方法。但每当我执行此函数时,它都会给我以下错误:加载资源失败:服务器响应状态为405(不允许使用方法),我不知道该怎么办。(Im使用visual studio 2015)