tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Steve Ryder" <sry...@jsrsys.com>
Subject Re: Tomcat 5.5 org.apache.naming.ResourceRef cannot be cast to javax.sql.DataSource
Date Tue, 26 Jan 2010 05:08:16 GMT
Sequence of events:
1)  With factory got cast error.
2)  Took out factory= and got "Cannot create resource instance"
3)  Put factory statement back in.  Is there a different one I should try?
The  cast exception is Thrown by this line
javax.sql.DataSource ds = 
(javax.sql.DataSource)envContext.lookup("jdbc/MySql");

in the connect method.   Here is the whole method as of the last test:

/**

* called by setDataBaseName

*/

private void connect(String dbName)

{

lastException = "OK";

/* don't need this if have connection pools

try

{

// Class.forName("org.gjt.mm.mysql.Driver");

sysout.display("Driver=com.mysql.jdbc.Driver");

Class.forName("com.mysql.jdbc.Driver");

}

catch (Exception E) {lastException=" Unable to load driver"; 
E.printStackTrace();

sysout.display(lastException);}

*/

try

{

sql = "Connection to jdbc/MySql:";

Context myContext = new InitialContext();

Context envContext = (Context)myContext.lookup("java:comp/env");

sysout.display("JsrSQL: Context cast successfull");

javax.sql.DataSource ds = 
(javax.sql.DataSource)envContext.lookup("jdbc/MySql");

sysout.display("JsrSQL: DataSource cast successfull");

conn = ds.getConnection();

sysout.display("JsrSQL: conn = ds successfull");

stmt = conn.createStatement();

sql = "USE "+ dbName; // attempt to mymic jdbcConnect set for dbName!

stmt.execute(sql);

sysout.display("**"+sql + ": connection to jdbc/MySql established.");

}

catch (SQLException E)

{ lastException="*WARNING*"+sql+ ": connect SQL exception: "

+ E.getMessage();

sysout.display(lastException);

}

catch(Exception eOther)

{

StackTraceElement[] stack = eOther.getStackTrace();

for (int s=0; s < stack.length; s++)

{

lastException = "Stack("+s+")=" + stack[s];

sysout.display(lastException);

if (lastException.indexOf("org.apache.jasper") > -1)

break;

}

lastException="*WARNING*"+sql+ ": connect Other exception: "

+ eOther.getMessage();

sysout.display(lastException);

}

}

----- Original Message ----- 
From: "Christopher Schultz" <chris@christopherschultz.net>
To: "Tomcat Users List" <users@tomcat.apache.org>
Sent: Monday, January 25, 2010 2:40 PM
Subject: Re: Tomcat 5.5 org.apache.naming.ResourceRef cannot be cast to 
javax.sql.DataSource


> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Steve,
>
> On 1/25/2010 2:56 PM, Steve Ryder wrote:
>> Starting from the bottom up of your suggestions:
>> 1)  I tried removing the try/catch.  No can do, Java compiler forces me
>> to catch the exceptions.
>
> Hmm... what method is declared as throwing "Exception" instead of
> something more specific?
>
>> 2)  However, Java does provide a getStackTrace.
>
> Throwable.printStackTrace() will also do the trick.
>
>> 2010-01-25
>> 19:37:09:Stack(5)javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>>
>> 2010-01-25
>> 19:37:09:Stack(4)org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
>>
>> 2010-01-25
>> 19:37:09:Stack(3)org.apache.jsp.index_jsp._jspService(index_jsp.java:89)
>> 2010-01-25 19:37:09:Stack(2)com.jsrsys.web.JsrSQL.(JsrSQL.java:42)
>> 2010-01-25
>> 19:37:09:Stack(1)com.jsrsys.web.JsrSQL.setDataBaseName(JsrSQL.java:86)
>> 2010-01-25 
>> 19:37:09:Stack(0)com.jsrsys.web.JsrSQL.connect(JsrSQL.java:503)
>
> Is this the code you posted earlier? If so, which line is 503?
>
>> 2010-01-25 19:37:09:*WARNING*Connection to jdbc/MySql:: connect Other
>> exception: org.apache.naming.ResourceRef cannot be cast to
>> javax.sql.DataSource
>
> This isn't the error message you posted earlier. The one you posted
> earlier was:
>
> "
> 2010-01-25 15:56:06:*WARNING*Connection to jdbc/MySql:: connect Other
> exception: Cannot create resource instance
> "
>
>> Removing the Class.forName code did not change anything, I still get
>> the same error.
>
> Right: the Class.forName simply wasn't necessary... I didn't expect it
> to change anything.
>
>> 2010-01-25 20:00:03:*WARNING*Connection to jdbc/MySql:: connect Other 
>> exception: org.apache.naming.ResourceRef cannot be cast to 
>> javax.sql.DataSource
>>
>> 2010-01-25 
>> 20:00:03:Stack(4)=org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
>> 2010-01-25 
>> 20:00:03:Stack(3)=org.apache.jsp.index_jsp._jspService(index_jsp.java:89)
>> 2010-01-25 20:00:03:Stack(2)=com.jsrsys.web.JsrSQL.(JsrSQL.java:42)
>> 2010-01-25 
>> 20:00:03:Stack(1)=com.jsrsys.web.JsrSQL.setDataBaseName(JsrSQL.java:86)
>> 2010-01-25 
>> 20:00:03:Stack(0)=com.jsrsys.web.JsrSQL.connect(JsrSQL.java:504)
>> 2010-01-25 20:00:03:JsrSQL: Context cast successfull
>
> Could you re-post the whole method? The object you get from the JNDI
> context really /should/ be a javax.sql.DataSource object, not a
> ResourceLink.
>
> - -chris
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.10 (MingW32)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
>
> iEYEARECAAYFAkteAdMACgkQ9CaO5/Lv0PAm7wCfSWyuzVUbJ1zXqaruicFBoUnS
> R6wAn3JGjRZ7uMS5uf1tR8utZ7oWnzpT
> =ymR0
> -----END PGP SIGNATURE-----
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Mime
View raw message