我在我的web服务上有这个put方法,这个方法使用了一个json对象,但是如果方法接收到一个带有name,surname,afiliation和country fields的json对象,我怎么能在我的方法中获取这些数据?
@PUT
@Path("/Updatemember/{nom}/{ape}/{afi}/{nac}")
@Consumes({"application/json"})
@Produces(MediaType.TEXT_PLAIN)
public String Updatemember(@PathParam("nom")String nombre, @PathParam("ape")String apellido,
@PathParam("afi")String afiliacion, @PathParam("nac")String nacionalidad) throws SQLException
{
Miembro.update(nombre, apellido, afiliacion, nacionalidad);
return "Data has been updated";
}
编辑: 现在方法是
@PUT
@Path("/Updatemember/")
@Consumes({"application/json"})
@Produces(MediaType.TEXT_PLAIN)
public String Updatemember(Miembro miembro) throws SQLException
{
miembro.update();
return "Se han actualizado los datos del miembro";
}
和类成员(西班牙语中的miembro)有这个方法,工作正常。
public void update() throws SQLException
{
Connection conexion = Conexion.GetConnection();
String sql = "UPDATE miembros SET afiliacion='"+getAfiliacion()+"', nacionalidad='"+getNacionalidad()+"' WHERE nombre='"+getNombre()+"' AND apellidos='"+getApellidos()+"'";
PreparedStatement pre = (PreparedStatement) conexion.prepareStatement(sql);
pre.execute();
}
Updatemember给了我一个Nullpoiter异常,miembro对象没有创建,但我不知道为什么。
答案 0 :(得分:0)
你的方法签名是说你接受了四个路径参数(不是json - 你可以将queryParams作为json)。
如果您创建一个名为Member的类,并将这些参数作为该类的成员:
@XmlRootElement
public class Member {
// public constructor
// getters and setters for your fields
}
然后让该类成为您方法的参数,并将路径更改为@Path(“/ UpdateMember / {id}”)。
如果确保在类路径上有jackson或moxy,则Member参数应该是类Member的有效对象实例。
在这里阅读球衣文档:https://jersey.java.net/documentation/latest/media.html#json