当前位置: 首页 > 知识库问答 >
问题:

StatusCodeException:500服务器上的调用失败;有关详细信息,请参阅服务器日志

楚冷勋
2023-03-14
server.SQL_tutti_clienti(new AsyncCallback<Cliente>() {


        public void onSuccess(Cliente result) {

            log = log + " 1 - Cliente ";

            tutti_clienti = result;

            cliente.addItem("- Seleziona un Cliente -","null");

            int n_clienti = tutti_clienti.getN();


            for(int i=0; i<n_clienti; i++){
                cliente.addItem(tutti_clienti.getCliente(i), String.valueOf(tutti_clienti.getId(i)));

            }
        }


        public void onFailure(Throwable caught) {

            log = log + " 1.1 - ERRORE Cliente " + caught;
            System.out.println("Errore server.SQL_tutti_clienti(): " + caught);
        }

    });

    server.SQL_tutti_tipi_prodotto(new AsyncCallback<Tipo_Prodotto>() {

        @Override
        public void onSuccess(Tipo_Prodotto result) {

            log = log + " 2 - Tutti Tipi ";

            tutti_tipi = result;

            tipo.addItem("- Seleziona Tipo Prodotto -");

            int n_tipi = tutti_tipi.getN();

            for(int i=0; i<n_tipi; i++)
                tipo.addItem(tutti_tipi.getTipoProdotto(i), String.valueOf(tutti_tipi.getId(i)));


        }

        @Override
        public void onFailure(Throwable caught) {
            log = log +" 2.1 - ERRORE Tutti Tipi: " + caught;
            System.out.println("Errore server.tutti_tipi_prodotto(): " + caught);
        }
    });
public class Cliente  implements Serializable{

private ArrayList<Integer> id_cliente = new ArrayList<Integer>();
private ArrayList<String> nome_cliente = new ArrayList<String>();

// Costruttori
public Cliente(){

}


// Metodi
public void add_cliente(int id, String nome){

    this.id_cliente.add(id);
    this.nome_cliente.add(nome);

}

public int getN(){
    return this.id_cliente.size();
}

public String getCliente(int id){
    return this.nome_cliente.get(id);
}

public int getId(int id){
    return this.id_cliente.get(id);
}
}
public class Tipo_Prodotto implements Serializable{

private static final long serialVersionUID = 1L;
private ArrayList<Integer> id_tipo_prodotto = new ArrayList<Integer>();
private ArrayList<String> tipo_prodotto = new ArrayList<String>();


// Costruttori
public Tipo_Prodotto(){

}


// Metodi
public void add_tipo_prodotto(int id, String nome){

    this.id_tipo_prodotto.add(id);
    this.tipo_prodotto.add(nome);

}

public int getN(){
    return this.id_tipo_prodotto.size();
}

public String getTipoProdotto(int id){
    return this.tipo_prodotto.get(id);
}

public int getId(int id){
    return this.id_tipo_prodotto.get(id);
}
}

服务器代码:

public Cliente SQL_tutti_clienti() throws Exception{

    Statement stmt1 = stmt;
    ResultSet rset1 = stmt1.executeQuery("SELECT * FROM cliente"); // Query
    Cliente c = new Cliente();


    while (rset1.next()){
        c.add_cliente(rset1.getInt("id_cliente"), rset1.getString("nome_cliente"));
    }

    rset1.close();
    stmt1.close();

    return c;

}

public Tipo_Prodotto SQL_tutti_tipi_prodotto() throws Exception{

    Statement stmt1 = stmt;
    ResultSet rset1 = stmt1.executeQuery("SELECT * FROM tipo_prodotto"); // Query
    Tipo_Prodotto t = new Tipo_Prodotto();


    while (rset1.next()){
        t.add_tipo_prodotto(rset1.getInt("id_prodotto"), rset1.getString("nome_prodotto"));
    }

    rset1.close();
    stmt1.close();

    return t;
}

以下是错误:

共有1个答案

解晟睿
2023-03-14

我认为例外很明显:

com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after statement closed.

我想这就是错误。我不知道stmt是在哪里创建的,但是您重用它,它将被关闭。

Statement stmt1 = stmt;

第二个servercall将失败,因为该语句已关闭:

stmt1.close();
 类似资料: