Web服务中参数@PUT的变量是否正确?

时间:2011-03-29 09:05:57

标签: java web-services jax-rs

这是对的吗?

我想从REST Web服务中的@PUT方法参数中获取变量。

但我得到变量“Null”,如何获取参数?

有人能告诉我吗?

@PUT
@Produces("application/html")
public Response postContainer(@PathParam("objecturi")String path){

    mongoDAOImpl impl=new mongoDAOImpl();
    Mongo mongo=impl.getConnection("127.0.0.1","27017");
    DB db=impl.getDataBase(mongo,"public");
    DBCollection coll=impl.getColl(db,"public");
    mongoDTO dto=new mongoDTO();
    dto.setParentpath("/home/public/liren");
    dto.setUserName("liren");
    dto.setPassWord("liren");
    dto.setFileName(path);
    dto.setAbsolutepath(dto.getParentpath()+"/"+dto.getFileName());

    boolean bool;
     try{
         file= new filemethods();
         bool=file.createcontainers(coll, dto, path);
         if(bool==true){
             return Response.status(Response.Status.OK).build();

         }else {
             return Response.status(Response.Status.NOT_ACCEPTABLE).build();
         }
     }catch(Exception ex){
         return Response.status(Response.Status.BAD_REQUEST).tag("Container create error"+ex.toString()).build();
     }

3 个答案:

答案 0 :(得分:1)

你的方法参数是一个http参数,比如/ uri?objecturi = / some / path?然后你必须使用@QueryParam(“objecturi”)而不是@PathParam(“objecturi”)。

答案 1 :(得分:1)

您的@Path注释中包含哪些内容? 基本上,如果您希望代码有效,则必须使用@Path("/url/{objecturi}")

之类的代码

答案 2 :(得分:0)

对于HTTP PUT方法,您需要将表单参数与HTTP标头的“application / x-www-form-urlencoded”MIME类型和@QueryParam注释一起使用。

@PUT
@Produces("application/html")
@Consumes("application/x-www-form-urlencoded")
public Response postContainer(@QueryParam("objecturi")String path){
...
}

希望这有帮助。