Estou aprendendo sobre JSON e WebService e quanto tento executar uma busca no banco de dados retorna esse erro na aplicação web.
O seguinte erro aparece quando tento executar o JSon abaixo:
@GET
@Produces("application/json")
@Path("Usuario/list")
public String listUsuario() throws SQLException
{
Usuario u = new Usuario();
Conexao con = new Conexao();
Gson g = new Gson();
con.getConnection();
UsuarioDAO dao = new UsuarioDAO();
dao.buscar(u , 1);
return g.toJson(u);
}
package dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
Classe Conexão:
public class Conexao {
public Connection getConnection() throws SQLException{
Connection con = DriverManager.getConnection("jdbc:postgresql://localhost:5432/userPizza", "*******","*******");
return con;
}
}
Classe UsuarioDAO
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import modelo.Usuario;
/**
*
* @author marcelosiedler
*/
public class UsuarioDAO {
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
public UsuarioDAO()
{
}
public void inserir(Usuario usuario) throws SQLException
{
Connection con = new Conexao().getConnection();
String sql = "insert into usuario(nomecliente,login,senha) values (?,?,?);";
PreparedStatement pst = con.prepareStatement(sql);
try {
pst.setString(1, usuario.getNome());
pst.setString(2, usuario.getLogin());
pst.setInt(3, usuario.getSenha());
con.close();
} catch (SQLException ex) {
Logger.getLogger(UsuarioDAO.class.getName()).log(Level.SEVERE, null, ex);
}
}
public void atualizar(Usuario usuario) throws SQLException
{
Connection con = new Conexao().getConnection();
String sql = "UPDATE usuario set senha=?,login=?,nome=? where login=?";
PreparedStatement pst = con.prepareStatement(sql);
try {
pst.setInt(1, usuario.getSenha());
pst.setString(2, usuario.getLogin());
pst.setString(3, usuario.getNome());
pst.setInt(4, usuario.getId());
con.close();
} catch (SQLException ex) {
Logger.getLogger(UsuarioDAO.class.getName()).log(Level.SEVERE, null, ex);
}
}
public void buscar(Usuario usuario, int id) throws SQLException
{
Connection con = new Conexao().getConnection();
String sql = "SELECT* FROM usuario where idcliente=?;";
usuario.setId(id);
PreparedStatement pst = con.prepareStatement(sql);
try {
pst.setInt(1, usuario.getId());
ResultSet res = pst.executeQuery();
if(res.next())
{
usuario.setLogin(res.getString("login"));
usuario.setSenha(res.getInt("senha"));
usuario.setNome(res.getString("nomecliente"));
}
} catch (SQLException ex) {
Logger.getLogger(UsuarioDAO.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
Classe Usuario:
package modelo;
public class Usuario {
private int id;
private String login;
private int senha;
private String nome;
public Usuario() {
}
public Usuario(int id, String login, int senha, String nome) {
this.id = id;
this.login = login;
this.senha = senha;
this.nome = nome;
}
public String getLogin() {
return login;
}
public void setLogin(String login) {
this.login = login;
}
public int getSenha() {
return senha;
}
public void setSenha(int senha) {
this.senha = senha;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
Se alguém puder ajudar a encontrar o erro, pois já executei apenas no java e a conexão funciona normalmente.
