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

新手上路,请多包涵

在做了一些研究后我问这个问题。我确实遵循了针对此类错误给出的解决方案,但对我不起作用。关于下面代码哪里出错的任何建议。我正在创建一个 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;  }

}

网站.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>

原文由 user2821894 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 763
2 个回答
@Produces({"text/plain","application/xml","application/json"})

将此更改为

@Produces("text/plain")

并尝试,

原文由 user2721787 发布,翻译遵循 CC BY-SA 4.0 许可协议

您可能正在进行 GET 操作的 PUT 调用 请检查一次

原文由 Vivek Mishra 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题