簡體   English   中英

Java WebService客戶端錯誤生成

[英]Java WebService client wrongly generated

好吧,首先,對不起我的英語不好。

生成Web服務時出現問題。 我有我的庫模型,其中包含Endereco,Cidade e Cliente類和我的DAO庫,其中包含這些模型的數據庫訪問類。 在Endereco.java類中,我有一個私有屬性Cidade cidade。 我已經獲得了一個Web服務,可以在前端和后端之間進行控制。 問題是,當我生成此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的WebService“ 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;

}
}

問題解決了!

這些類之間的差異是由於我的服務器配置而發生的。 當我從apache服務器類路徑更新.jar文件時,代碼已正確生成。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM