这是对的吗?
我想从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();
}
答案 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){
...
}
希望这有帮助。