Besides I had same problem (the original mail was me), I had double
check paths, and I'm sure I didn't had additional derby.jar anywhere
(only Tomcat/common/lib).
But I'm happy you query return to work. At that time, I was under
pressure, and could not achive the problem (neither got any response
from Derby group), I was forced to go out of Derby and use a commercial Db.
Richter
Chris Newell escreveu:
Hello all...
I seem to have resolved my own issue as I was preparing a message to
this list seeking help (thanks!). Having spent more hours than I care to
admit trying to figure this out, and having seen another user in the
list archive that had a similar problem with no solution provided, I
thought that I'd post this with hopes of helping someone else that made
the same stupid mistake.
The issue was previously discussed in December:
http://mail-archives.apache.org/mod_mbox/db-derby-user/200512.mbox/%3c43
[EMAIL PROTECTED]
The problem was:
-------------------------
This issue arises when executing the statement "select count(*) from
DEFAULT_SCHEMA.general_events". If I execute it using a datasource from
the Tomcat pool I got the exception: 'java.lang.ClassCastException:
org.apache.derby.impl.sql.execute.CountAggregator' was thrown while
evaluating an expression. When I execute nearly identical code loading
the driver myself I got a proper response.
The environment was:
------------------------------
RedHat 4ES/2.6.9-5.EL
Apache Tomcat/5.5.7
Apache Derby/10.1.2.1
The code was:
---------------------
This worked:
Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
Connection xconn =
DriverManager.getConnection("jdbc:derby:xag;create=true");
Statement xstmnt = xconn.createStatement();
if (xstmnt.execute("select count(*) from
DEFAULT_SCHEMA.general_events")){
ResultSet xrs = xstmnt.getResultSet();
if (xrs.next()){
int xxx = xrs.getInt(1);
}
}
This didn't work:
InitialContext cxt = new InitialContext();
DataSource ds = (DataSource)
cxt.lookup("java:comp/env/xag/derby");
Connection conn = ds.getConnection();
Statement stmnt = conn.createStatement();
if (stmnt.execute("select count(*) from
DEFAULT_SCHEMA.general_events")){
ResultSet rs = stmnt.getResultSet();
if (rs.next()){
int xx = rs.getInt(1);
}
}
The exception was:
----------------------------
SQL Exception: The exception 'java.lang.ClassCastException:
org.apache.derby.impl.sql.execute.CountAggregator' was thrown while
evaluating an expression.
The solution was:
-------------------------
I found that I had put a copy of derby.jar in both $TOMCAT/common/lib as
well as $TOMCAT/webapps/[my app]/WEB-INF/lib. I removed the one under
webapps and suddenly, as if by magic, I could count the rows in my
table.... And the world seems like a nicer place.
begin:vcard
fn:Edson Carlos Ericksson Richter
n:Richter;Edson
org;quoted-printable:MGR Inform=C3=A1tica Ltda;Desenvolvimento
adr:Cristo Redentor;;Assis Brasil, 3257, Sala 409;Porto Alegre;RS;91010007;Brasil
email;internet:[EMAIL PROTECTED]
title:Diretor de Sistemas
tel;work:(51)3347-0446
tel;cell:(51)9259-2993
x-mozilla-html:FALSE
url:http://www.mgrinformatica.com.br
version:2.1
end:vcard