我有一个 REST 服务,它接收 JSON,转换为 Object 并将其发送到 EJB。问题是当调用 EJB 中的方法时,我的对象的所有属性都是空的。
看起来对象引用正在丢失:
- 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。
提前致谢。