我有一个接收JSON的REST服务,转换为Object并将其发送到EJB。问题是当调用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。
提前致谢。