Java WebService客户端错误生成

Java WebService客户端错误生成,java,web-services,webservice-client,Java,Web Services,Webservice Client,首先,很抱歉我的英语不好 我在生成Web服务时遇到问题。 我有我的lib模型,它包含Endereco、Cidade e Cliente类,还有我的DAO lib,它包含这些模型的数据库访问类。 在Endereco.java类中,我有一个私有属性Cidade。 我已经得到了一个Web服务来控制前端和后端。 问题是,当我生成这个webservice类“address”时,会得到int属性city,而不是基类“Cidade”的属性 遵循课程代码: “ENDERECO.java”: “CIDADE.ja

首先,很抱歉我的英语不好

我在生成Web服务时遇到问题。 我有我的lib模型,它包含Endereco、Cidade e Cliente类,还有我的DAO lib,它包含这些模型的数据库访问类。 在Endereco.java类中,我有一个私有属性Cidade。 我已经得到了一个Web服务来控制前端和后端。 问题是,当我生成这个webservice类“address”时,会得到int属性city,而不是基类“Cidade”的属性

遵循课程代码:

“ENDERECO.java”:

“CIDADE.java”:

“enderecdao.java”:

package lib.dao;
导入java.sql.Connection;
导入java.sql.PreparedStatement;
导入java.sql.ResultSet;
导入java.sql.SQLException;
导入java.util.ArrayList;
导入java.util.List;
进口lib.banco.ConexaoBanco;
导入lib.modelo.Endereco;
公共类{
私有静态最终字符串CONSULTA_POR_ID=“SELECT*FROM cadastros.cliente_endereco,其中ID=?;”;
私有静态最终字符串CONSULTA_POR_CLIENTE=“SELECT*FROM cadastros.CLIENTE_endereco,其中fK_CLIENTE=?;”;
私有静态最终字符串INSERE=“插入到cadastros.cliente_endereco(fk_cliente,endereco,numero,complemento,fk_cidade,bairro,uf,cep)值(?,,,,,,,,,,,?,,;”;
私有静态最终字符串ALTERA=“UPDATE cadastros.cliente_endereco SET endereco=?,numero=?,complemento=?,fk_cidade=?,bairro=?,uf=?,cep=?其中fk_cliente=?和id=?”;
公共列表ConsultarEnderRecopportClient(int codCliente)引发SQLException{
连接conexaoSQL=null;
ResultSet rsEndereco=null;
List listaEndereco=新建ArrayList();
ClienteDAO ClienteDAO=新ClienteDAO();
CidadeDAO CidadeDAO=新CidadeDAO();
试一试{
conexaoSQL=ConexaoBanco.getConexao(“selecao”);
PreparedStatement pstmt=conexaoSQL.PreparedStatement(咨询客户);
pstmt.setInt(1,codCliente);
rsEndereco=pstmt.executeQuery();
while(rsEndereco.next()){
Endereco Endereco=新的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”);
添加(endereco);
}
rsEndereco.close();
conexaoSQL.close();
}捕获(例外e){
conexaoSQL.close();
抛出新的运行时异常(e);
}
返回listaEndereco;
}
公共布尔地籍渲染器(Endereco Endereco)引发SQLException{
布尔状态=假;
连接conexaoSQL=null;
试一试{
conexaoSQL=ConexaoBanco.getConexao(“insercao”);
PreparedStatement pstmt=conexaoSQL.prepareStatement(插图);
setInt(1,endereco.getCliente().getId());
pstmt.setString(2,endereco.getEndereco());
pstmt.setString(3,endereco.getNumero());
pstmt.setString(4,endereco.getComplemento());
setInt(5,endereco.getCidade().getId());
pstmt.setString(6,endereco.getBairro());
pstmt.setString(7,endereco.getUf());
pstmt.setString(8,endereco.getCep());
pstmt.execute();
conexaoSQL.close();
状态=真;
}捕获(例外e){
conexaoSQL.close();
抛出新的运行时异常(e);
}
返回状态;
}
公共布尔AlterarEndereco(Endereco Endereco)引发SQLException{
布尔状态=假;
连接conexaoSQL=null;
试一试{
conexaoSQL=ConexaoBanco.getConexao(“alteraco”);
PreparedStatement pstmt=conexaoSQL.prepareStatement(ALTERA);
pstmt.setString(1,endereco.getEndereco());
pstmt.setString(2,endereco.getNumero());
pstmt.setString(3,endereco.getComplemento());
setInt(4,endereco.getCidade().getId());
pstmt.setString(5,endereco.getBairro());
pstmt.setString(6,endereco.getUf());
pstmt.setString(7,endereco.getCep());
setInt(8,endereco.getCliente().getId());
setInt(9,endereco.getId());
pstmt.execute();
conexaoSQL.close();
pstmt.close();
状态=真;
}捕获(例外e){
conexaoSQL.close();
抛出新的运行时异常(e);
}
返回状态;
}
public-Endereco-ConsultarEnderecoPorId(int-codEndereco)抛出SQLException{
连接conexaoSQL=null;
ResultSet rsEndereco=null;
Endereco Endereco=新的Endereco();
CidadeDAO CidadeDAO=新CidadeDAO();
ClienteDAO ClienteDAO=新ClienteDAO();
试一试{
conexaoSQL=ConexaoBanco.getConexao(“selecao”);
PreparedStatement pstmt=conexaoSQL.prepareStatement(咨询文件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
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;
}

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


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

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

}
}