No Response o json é gerado, mas está sendo retornado vazio. Ao “debugar” verifiquei que os dados que quero que sejam inseridos no json são retornados com sucesso do banco e o objeto que quero retornar traz os dados corretamente, só que na hora da construção do json os dados não são inseridos. Segue o código:
Método na classe DAO (que faz as consultas no banco)
public ArrayList<Aluno> retornaAluno(String codigoResponsavel) {
try {
if(!verificaCodigoNoMetodo(codigoResponsavel).equals("0")){
ArrayList<Aluno> listaAluno = new ArrayList<Aluno>();
String sql = "SELECT A.ID, A.NOME, A.SERIE, A.TURMA FROM TB_ALUNO A INNER JOIN TB_ALUNO_RESPONSAVEL B ON B.ALUNO_ID = A.ID "
+ "INNER JOIN TB_CODIGO C ON B.RESPONSAVEL_ID = C.RESPONSAVELID WHERE C.IDALUNO IS NULL AND C.CODIGO = ?";
PreparedStatement stmt = connection.prepareStatement(sql);
stmt.setString(1, codigoResponsavel);
ResultSet rs = stmt.executeQuery();
while(rs.next()){
Aluno aluno = new Aluno();
aluno.setIdAluno(rs.getInt("id"));
aluno.setNome(rs.getString("nome"));
aluno.setSerie(rs.getString("serie"));
aluno.setTurma(rs.getString("turma"));
listaAluno.add(aluno);
}
stmt.close();
rs.close();
connection.close();
logger.info("retornaAluno chamado com sucesso.");
return listaAluno;
}else{
logger.info("retornaAluno chamado com sucesso.");
return null;
}
} catch (SQLException e) {
logger.error("Ocorreu uma falha na consulta no método retornaAluno", e);
throw new RuntimeException("Ocorreu uma falha na consulta no método retornaAluno");
}
}
Método na classe Controler (que faz a parte do controler do MVC)
public ArrayList<Aluno> retornaAluno(String nomeEscola, String codigoResponsavel) {
return new WSDao(nomeEscola).retornaAluno(codigoResponsavel);
}
Método da classe WebResources (classe que contém os recursos e responde as requisições)
@GET
@Path("/retornaAluno/{nomeEscola}/{codigoResponsavel}")
@Produces(MediaType.APPLICATION_JSON)
public Response retornaAluno(@PathParam("nomeEscola") String nomeEscola, @PathParam("codigoResponsavel") String codigoResponsavel) {
ArrayList<Aluno> listaAluno = new Controler().retornaAluno(nomeEscola, codigoResponsavel);
if(listaAluno != null){
logger.info("Resposta do retornaAluno enviada com sucesso");
return Response.status(200).entity(listaAluno).build();
}else{
logger.info(MSG_COD_RESP_NAO_ENCONTRADO);
return Response.status(200).entity(MSG_COD_RESP_NAO_ENCONTRADO).build();
}
}
Classe Aluno
package Bean;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class Aluno {
private String nome;
private String codigo;
private String serie;
private String turma;
private int idAluno;
public void setSerie(String serie) {
this.serie = serie;
}
public void setTurma(String turma) {
this.turma = turma;
}
public void setNome(String nome) {
this.nome = nome;
}
public void setCodigo(String codigo) {
this.codigo = codigo;
}
public void setIdAluno(int idAluno) {
this.idAluno = idAluno;
}
}
Arquivo web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
<display-name>Nome_do_projeto</display-name>
<servlet>
<servlet-name>Jersey REST Service</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>pacote_onde_fica_os_recursos</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey REST Service</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
<context-param>
<param-name>log4jContextName</param-name>
<param-value>Nome_do_projeto</param-value>
</context-param>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>
Como o json está sendo gerado (quando quero retornar dois objetos, por exemplo)
[
{},
{}
]