JSON を受信し、オブジェクトに変換して EJB に送信する REST サービスがあります。問題は、EJB 内のメソッドが呼び出されたときに、オブジェクトのすべての属性が null になることです..
オブジェクト参照が失われているようです:
- REST クラス内の参照:
entities.login.Usuario@8d744cc7
- EJB 内部参照:
entities.login.Usuario@a1
クラス Usuario の equals と hashCode をオーバーライドしました。
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "usuario")
@JsonRootName(value = "usuario")
@Entity
@Table(name = "USUARIO")
public class Usuario implements Entidade {
private static final long serialVersionUID = -4638207002664824130L;
...
@Override
public boolean equals(Object obj) {
if(obj != null && (obj instanceof Usuario) && ((Usuario) obj).getEmail().equalsIgnoreCase(this.getEmail())){
return true;
} else {
return false;
}
}
@Override
public int hashCode() {
int hash = 7;
hash = 23 * hash + ((getEmail()) != null ? getEmail().hashCode() : 0);
return hash;
}
}
私のRESTクラス:
@Path("/usuario")
public class UsuarioRest {
@POST
@Path("/login")
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
@Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
public Response login(Usuario usuario){
return Response.ok(usuarioService.getUsuario(usuario)).build();
}
}
何が起こっているのですか?Java 7、EJB 3.1、REST 2.0 を使用しています。
前もって感謝します。