2014-12-05 42 views
0

我有我的web服务这个put方法JSON对象的数据,此方法都需要一个JSON对象,但我怎么能得到这个数据我的方法中,如果该方法接收与名字,姓氏JSON对象,灾难和国家领域?获取有关JAX-RS

@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(); 
} 

更新成员给了我一个Nullpoiter异常,但没有创建miembro对象,但我不知道为什么。

+0

https://blogs.oracle.com/arungupta/entry/consuming_and_producing_json_using – mounaim 2014-12-05 17:35:18

+0

1)什么是您使用(如新泽西州,Reaseasy)JAX-RS的实现? 2)显示你的JSON 3)显示你的Miembro类4)服务器日志中的任何错误? 5)你添加了JSON提供者吗? – 2014-12-06 03:23:05

+0

它解决了,谢谢你 – AFS 2014-12-06 11:44:47

回答

0

你的方法签名说,你把四个路径参数(不JSON - 你可以有queryParams为JSON虽然)。

如果您创建一个名为成员与参数类的成员类:

@XmlRootElement 
public class Member { 
     // public constructor 
     // getters and setters for your fields 
} 

然后让类是参数传递给方法,并改变路径@Path(“/ UpdateMember/{ID }“)。

如果您务必要么杰克逊或MOXY在类路径中,你的会员的参数应该是类会员的有效对象实例。

阅读上这里的球衣文档:https://jersey.java.net/documentation/latest/media.html#json

+0

我知道这receivies 4路径参数,但我这么问是因为我想,德法workswith一个JSON object.I've编辑我的职位,以增加更多的信息。 – AFS 2014-12-05 18:14:12