2016-04-26 5 views
2

Nun, zuerst, Entschuldigung für mein schlechtes Englisch.Java WebService Client falsch generiert

Ich habe ein Problem beim Generieren eines Webservice. Ich habe mein lib-Modell, das die Klassen Endereco, Cidade e Cliente und meine DAO-Bibliothek enthält, die die Datenbankzugriffsklassen für diese Modelle enthält. In Endereco.java Klasse habe ich ein privates Attribut Cidade Cidade. Ich habe einen Webservice bekommen, um eine Kontrolle zwischen Front-End und Back-End zu sein. Das Problem ist, dass beim Generieren dieser Webservice-Klasse "Adresse" das int-Attribut city erhält und nicht das Attribut meiner Basisklasse "Cidade".

die Codes der Klassen Folgen:

"ENDERECO.java":

package lib.modelo; 

public class Endereco { 

private int id; 
private Cliente cliente; 
private String endereco; 
private String numero; 
private String complemento; 
private Cidade cidade; 
private String bairro; 
private String uf; 
private String cep; 

public int getId() { 
    return id; 
} 

public void setId(int id) { 
    this.id = id; 
} 

public Cliente getCliente() { 
    return cliente; 
} 

public void setCliente(Cliente cliente) { 
    this.cliente = cliente; 
} 

public String getEndereco() { 
    return endereco; 
} 

public void setEndereco(String endereco) { 
    this.endereco = endereco; 
} 

public String getNumero() { 
    return numero; 
} 

public void setNumero(String numero) { 
    this.numero = numero; 
} 

public String getComplemento() { 
    return complemento; 
} 

public void setComplemento(String complemento) { 
    this.complemento = complemento; 
} 

public Cidade getCidade() { 
    return cidade; 
} 

public void setCidade(Cidade cidade) { 
    this.cidade = cidade; 
} 

public String getBairro() { 
    return bairro; 
} 

public void setBairro(String bairro) { 
    this.bairro = bairro; 
} 

public String getUf() { 
    return uf; 
} 

public void setUf(String uf) { 
    this.uf = uf; 
} 

public String getCep() { 
    return cep; 
} 

public void setCep(String cep) { 
    this.cep = cep; 
} 

} 

"CIDADE.java":

package lib.modelo; 

public class Cidade { 

private int id; 
private String descricao; 
private double valor_taxa; 

public double getValor_taxa() { 
    return valor_taxa; 
} 

public void setValor_taxa(double valor_taxa) { 
    this.valor_taxa = valor_taxa; 
} 

public int getId() { 
    return id; 
} 

public void setId(int id) { 
    this.id = id; 
} 

public String getDescricao() { 
    return descricao; 
} 

public void setDescricao(String descricao) { 
    this.descricao = descricao; 
} 


} 

"ENDERECODAO.java":

package lib.dao; 

import java.sql.Connection; 
import java.sql.PreparedStatement; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.util.ArrayList; 
import java.util.List; 

import lib.banco.ConexaoBanco; 
import lib.modelo.Endereco; 

public class EnderecoDAO { 


private static final String CONSULTA_POR_ID = "SELECT * FROM cadastros.cliente_endereco WHERE id = ?;"; 
private static final String CONSULTA_POR_CLIENTE = "SELECT * FROM cadastros.cliente_endereco WHERE fK_cliente = ?;"; 
private static final String INSERE = "INSERT INTO cadastros.cliente_endereco (fk_cliente , endereco , numero , complemento , fk_cidade , bairro , uf , cep) VALUES (?, ?, ?, ?, ?, ?, ?, ?);"; 
private static final String ALTERA = "UPDATE cadastros.cliente_endereco SET endereco = ?, numero = ?, complemento = ?, fk_cidade = ?, bairro = ?, uf = ?, cep = ? WHERE fk_cliente = ? AND id = ?;"; 

public List<Endereco> ConsultarEnderecoPorCliente (int codCliente) throws SQLException{ 

    Connection conexaoSQL = null; 
    ResultSet rsEndereco = null; 
    List<Endereco> listaEndereco = new ArrayList<Endereco>(); 
    ClienteDAO clienteDAO = new ClienteDAO(); 
    CidadeDAO cidadeDAO = new CidadeDAO(); 

    try{ 

     conexaoSQL = ConexaoBanco.getConexao("selecao"); 
     PreparedStatement pstmt = conexaoSQL.prepareStatement(CONSULTA_POR_CLIENTE); 

     pstmt.setInt(1, codCliente); 

     rsEndereco = pstmt.executeQuery(); 

     while (rsEndereco.next()){ 

      Endereco endereco = new Endereco(); 

      endereco.setId(rsEndereco.getInt("id")); 
      endereco.setCliente(clienteDAO.CousultaPorId(rsEndereco.getInt("fk_cliente"))); 
      endereco.setEndereco(rsEndereco.getString("endereco")); 
      endereco.setNumero(rsEndereco.getString("numero")); 
      endereco.setComplemento(rsEndereco.getString("complemento")); 
      endereco.setCidade(cidadeDAO.consultaPorId(rsEndereco.getInt("fk_cidade"))); 
      endereco.setBairro(rsEndereco.getString("bairro")); 
      endereco.setUf(rsEndereco.getString("uf")); 
      endereco.setCep(rsEndereco.getString("cep")); 

      listaEndereco.add(endereco); 

     } 

     rsEndereco.close(); 
     conexaoSQL.close(); 

    }catch(Exception e){ 
     conexaoSQL.close(); 
     throw new RuntimeException(e); 
    } 

    return listaEndereco; 

} 

public boolean CadastrarEndereco (Endereco endereco) throws SQLException{ 

    boolean status = false; 
    Connection conexaoSQL = null; 

    try { 

     conexaoSQL = ConexaoBanco.getConexao("insercao"); 

     PreparedStatement pstmt = conexaoSQL.prepareStatement(INSERE); 
     pstmt.setInt(1, endereco.getCliente().getId()); 
     pstmt.setString(2, endereco.getEndereco()); 
     pstmt.setString(3, endereco.getNumero()); 
     pstmt.setString(4, endereco.getComplemento()); 
     pstmt.setInt(5, endereco.getCidade().getId()); 
     pstmt.setString(6, endereco.getBairro()); 
     pstmt.setString(7, endereco.getUf()); 
     pstmt.setString(8, endereco.getCep()); 

     pstmt.execute(); 
     conexaoSQL.close(); 
     status = true; 

    } catch (Exception e) { 

     conexaoSQL.close(); 
     throw new RuntimeException(e); 

    } 

    return status; 
} 

public boolean AlterarEndereco (Endereco endereco) throws SQLException{ 

    boolean status = false; 
    Connection conexaoSQL = null; 

    try { 

     conexaoSQL = ConexaoBanco.getConexao("alteracao"); 

     PreparedStatement pstmt = conexaoSQL.prepareStatement(ALTERA); 
     pstmt.setString(1, endereco.getEndereco()); 
     pstmt.setString(2, endereco.getNumero()); 
     pstmt.setString(3, endereco.getComplemento()); 
     pstmt.setInt(4, endereco.getCidade().getId()); 
     pstmt.setString(5, endereco.getBairro()); 
     pstmt.setString(6, endereco.getUf()); 
     pstmt.setString(7, endereco.getCep()); 
     pstmt.setInt(8, endereco.getCliente().getId()); 
     pstmt.setInt(9, endereco.getId()); 

     pstmt.execute(); 
     conexaoSQL.close(); 
     pstmt.close(); 
     status = true; 

    } catch (Exception e) { 
     conexaoSQL.close(); 
     throw new RuntimeException(e); 
    } 

    return status; 
} 

public Endereco ConsultarEnderecoPorId (int codEndereco) throws SQLException{ 

    Connection conexaoSQL = null; 
    ResultSet rsEndereco = null; 
    Endereco endereco = new Endereco(); 
    CidadeDAO cidadeDAO = new CidadeDAO(); 
    ClienteDAO clienteDAO = new ClienteDAO(); 

    try { 

     conexaoSQL = ConexaoBanco.getConexao("selecao"); 
     PreparedStatement pstmt = conexaoSQL.prepareStatement(CONSULTA_POR_ID); 

     pstmt.setInt(1, codEndereco); 

     rsEndereco = pstmt.executeQuery(); 

     if(rsEndereco.next()){ 

      endereco.setBairro(rsEndereco.getString("bairro")); 
      endereco.setCep(rsEndereco.getString("cep")); 
      endereco.setCidade(cidadeDAO.consultaPorId(rsEndereco.getInt("fk_cidade"))); 
      endereco.setCliente(clienteDAO.CousultaPorId(rsEndereco.getInt("fk_cliente"))); 
      endereco.setComplemento(rsEndereco.getString("complemento")); 
      endereco.setEndereco(rsEndereco.getString("endereco")); 
      endereco.setId(rsEndereco.getInt("id")); 
      endereco.setNumero(rsEndereco.getString("numero")); 
      endereco.setUf(rsEndereco.getString("uf")); 

     } 

    } catch (Exception e) { 

     throw new RuntimeException(e); 

    } 

    conexaoSQL.close(); 
    rsEndereco.close(); 
    return endereco; 

} 
} 

Und das Web Service für ENDERECO "SERVICOENDERECO.java":

package lib.webservice.endereco; 

import java.util.ArrayList; 
import java.util.List; 

import lib.dao.EnderecoDAO; 
import lib.modelo.Cidade; 
import lib.modelo.Cliente; 
import lib.modelo.Endereco; 

public class ServicoEndereco { 

public Endereco[] consultaPorCliente(int id){ 

    EnderecoDAO eDAO = new EnderecoDAO(); 
    List<Endereco> listaEndereco = new ArrayList<Endereco>(); 

    try{ 

     listaEndereco = eDAO.ConsultarEnderecoPorCliente(id); 

    }catch(Exception e){ 

     throw new RuntimeException(e); 

    } 

    return listaEndereco.toArray(new Endereco[0]); 
} 

public boolean cadastra(Cliente cliente , String logradouro , String numero , 
         String complemento , Cidade cidade , String bairro , 
         String uf , String cep){ 

    boolean status = false; 

    try{ 

     Endereco endereco = new Endereco(); 
     EnderecoDAO eDAO = new EnderecoDAO(); 

     endereco.setCliente(cliente); 
     endereco.setEndereco(logradouro); 
     endereco.setNumero(numero); 
     endereco.setComplemento(complemento); 
     endereco.setCidade(cidade); 
     endereco.setBairro(bairro); 
     endereco.setUf(uf); 
     endereco.setCep(cep); 

     status = eDAO.CadastrarEndereco(endereco); 

    }catch(Exception e){ 

     throw new RuntimeException(e); 

    } 

    return status; 
} 

public boolean altera(Cliente cliente , String logradouro , String numero , 
         String complemento , Cidade cidade , String bairro , 
         String uf , String cep , int id){ 

    boolean status = false; 

    try{ 

     Endereco endereco = new Endereco(); 
     EnderecoDAO eDAO = new EnderecoDAO(); 

     endereco.setCliente(cliente); 
     endereco.setEndereco(logradouro); 
     endereco.setNumero(numero); 
     endereco.setComplemento(complemento); 
     endereco.setCidade(cidade); 
     endereco.setBairro(bairro); 
     endereco.setUf(uf); 
     endereco.setCep(cep); 
     endereco.setId(id); 

     status = eDAO.AlterarEndereco(endereco); 

    }catch(Exception e){ 

     throw new RuntimeException(e); 

    } 

    return status; 
} 

public Endereco consultaPorId (int id){ 

    EnderecoDAO eDAO = new EnderecoDAO(); 
    Endereco endereco = new Endereco(); 

    try { 

     endereco = eDAO.ConsultarEnderecoPorId(id); 

    } catch (Exception e) { 

     throw new RuntimeException(e); 

    } 

    return endereco; 

} 
} 
+0

wo genau das Problem ist? –

+0

@DeendayalGarg das Problem ist auf den generierten Code für die Klasse Endereco im Webservice. In der Modellklasse Endereco.java gibt es zwei Attribute: private Cidade cidade; und private Cliente Kunden; Wenn ich den Webservice erzeuge, nimmt die Klasse Endereco die folgenden Attribute an: private int cidade und private lib.Modelo.Cliente cliente. Das Attribut cidade sollte wie das Attribut cliente sein, private lib.Modelo.Cidade cidade –

Antwort

0

Problem gelöst!

Der Unterschied zwischen den Klassen fand aufgrund meiner Serverkonfiguration statt. Wenn ich die .jar-Dateien vom Apache-Server-Klassenpfad aktualisierte, wurde der Code ordnungsgemäß generiert.