@PUT Jersey错误405:不允许使用方法

时间:2014-08-11 23:26:07

标签: java tomcat jersey put dynamic-websites

我正在

  

错误405:不允许使用方法

MessageEnd.java:

package com.example.wordcount;

import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;

@Path("/jersey")
public class MessageEnd {

    @GET
    @Path("/getvalue/{word}")
    @Produces(MediaType.TEXT_PLAIN)
    public Response sayHello(@PathParam("word") String word){

        String output = " Count of word " + word;
        return Response.status(200).entity(output).build();
    }

    @PUT
    @Path("/sendvalue/{msg}")
    @Consumes(MediaType.TEXT_PLAIN)
    @Produces(MediaType.TEXT_PLAIN)
    public Response sendMsg(@PathParam("msg") String msg){

        String output = "Received message= " + msg;
        return Response.status(200).entity(output).build();
    }

}

仅供参考,@GET工作正常。

我正在使用以下URI:

http://localhost:8080/message/jersey/sendvalue/hi

2 个答案:

答案 0 :(得分:6)

当您在地址栏中输入任何内容时,浏览器仅发送GET个请求。您可以在此处了解HTTP方法之间的区别:http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods

您应该使用正确的REST客户端来创建PUT个请求。我使用的那个非常好的是Chrome的Postman扩展程序:link

上述错误的原因是您尝试将GET请求发送到/ sendvalue,并且此方法/路径对没有映射。

答案 1 :(得分:0)

即使我在搞笑,使用浏览器发送POST请求!您可以使用POSTMAN chrome客户端来测试POST请求。 (就此而言,您可以对所有http方法使用POSTMAN)