Wie löse ich dieses "kann nicht umgewandelt werden" Ausnahme?

Ich bin immer folgende exception:

java.lang.ClassCastException: org.apache.commons.dbcp.DelegatingStatement cannot be cast to org.apache.tomcat.dbcp.dbcp.DelegatingStatement
    optimise.database.ProdigyDB.doInsertSerial(ProdigyDB.java:139)
    optimise.stock.CurrentRequest.writeRequest(CurrentRequest.java:145)
    optimise.stock.SubmitOrderServlet.processRequest(SubmitOrderServlet.java:51)
    optimise.stock.SubmitOrderServlet.doPost(SubmitOrderServlet.java:188)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    optimise.stock.AuthFilter.doFilter(AuthFilter.java:69)

Die code-Zeile ist diese:

 serial = ((com.informix.jdbc.IfmxStatement) ((org.apache.tomcat.dbcp.dbcp.DelegatingStatement) statement).getDelegate()).getSerial();

Die volle Funktion ist diese:

public static int doInsertSerial(String sql) {
    int serial = 0;

    try {
        Connection connection = getConnection();
        java.sql.Statement statement = connection.createStatement();
        statement.executeUpdate(sql);

        serial = ((com.informix.jdbc.IfmxStatement)((org.apache.tomcat.dbcp.dbcp.DelegatingStatement) statement).getDelegate()).getSerial();

        statement.close();
        connection.close();
    } catch (SQLException e) {
        throw new RuntimeException("SQL Update Exception\n" + sql, e);                
    }

    return serial;
}

Dies ist geheimnisvoll, weil der gleiche code funktioniert Prima, wenn die Bereitstellung auf einem Unix-SCO5-server, aber die Fehler, die auf einem Linux-Red Hat-server.

Jede Hilfe wird sehr geschätzt.

Dank.


Blick in Dinge, die ein bisschen tiefer, ich sehe, dass die DelegatingStatement Klasse zeigt einen Fehler:

public class DelegatingStatement erstreckt AbandonedTrace implements-Anweisung {

org.apache.Unterhaus.dbcp.DelegatingStatement is not abstract and does not override abstract method isPoolable() in java.sql.Anweisung

Verstehe ich nicht, warum dies geschieht.

InformationsquelleAutor Charlie Grant | 2015-07-13

Schreibe einen Kommentar