2014-12-05 39 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