2016-04-26 15 views
2

まず、私の悪い英語のために申し訳ありません。Java WebServiceクライアントが間違って生成されました

ウェブサービスを生成する際に問題が発生しています。 私は、これらのモデルのデータベースアクセスクラスを含むEndereco、Cidade e Cliente、およびDAO libクラスを含む私のlibモデルを持っています。 Endereco.javaクラスで私はCidadeの秘密というプライベート属性を持っています。 私は、フロントエンドとバックエンドの間のコントロールとなるウェブサービスを手に入れました。 問題は、私がこのWebサービスクラス "アドレス"を生成するときに、int属性のcityを取得し、基底クラス "Cidade"の属性を取得しないということです。

"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; 

} 
} 

ウェブ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

どこに問題がありますか? –

+0

@DeendayalGarg問題はWebサービスのEnderecoクラスの生成コードにあります。モデルクラスEndereco.javaには、次の2つの属性があります。 private Cidade cidade;プライベートクライアントクライアント。 Webserviceを生成すると、Enderecoクラスでは次の属性が仮定されます。 private int cidadeおよびprivate lib.Modelo.Cliente cliente。 属性cidadeは、cliente属性のようになります。 private lib.Modelo.Cidade cidade –

答えて

0

問題が解決しました!

クラスの違いは、サーバーの設定によって発生しています。 .jarファイルをApacheサーバークラスパスから更新したとき、コードは正しく生成されました。

関連する問題