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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das Paket ist für die DelegatingStatement Klasse.
org.apache.commons.dbcp
&org.apache.tomcat.dbcp.dbcp
sind zwei verschiedene Pakete bieten zwei verschiedene DelegatingStatement Klassen. Sie bekommen eine classcastexception-Fehler, weil die JVM nicht sehen Sie als die gleiche Art überhaupt.Überprüfen Sie die DelegatingStatement Klasse Paket importiert werden. Als pro code
org.apache.tomcat.dbcp.dbcp
Paket importiert werden soll.Überprüfen Sie auch diese & diese
oder, wenn Sie mehr Zeit haben, Lesen Sie hier
InformationsquelleAutor underdog