I have a situation where I am attempting to downcast a DataSource resource
into the exact class that getClass().getName() reports the object is, but
it's causing a ClassCastException.
--> server.xml:
<GlobalNamingResources>
<Resource name="LoanAuditorDB" auth="Container"
type="org.enhydra.jdbc.pool.StandardXAPoolDataSource"/>
<ResourceParams name="LoanAuditorDB">
...more
</ResourceParams>
</GlobalNamingResources>
...more
<Context path="/workbench"
docBase="C:\Code\loanauditor\src\webapp\workbench"
workDir="C:\Code\loanauditor\src\webapp\workbench\WEB-INF\work"
reloadable="true" debug="0">
<ResourceLink name="jdbc/loanauditor"
global="LoanAuditorDB"
type="org.enhydra.jdbc.pool.StandardXAPoolDataSource"/>
<ResourceLink name="jta/loanauditor"
global="UserTransaction"
type="javax.transaction.UserTransaction"/>
</Context>
--> web.xml
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/loanauditor</res-ref-name>
<res-type>org.enhydra.jdbc.pool.StandardXAPoolDataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
--> constructor from abstract class, AbstractDAO.java:
protected AbstractDAO() {
try {
Context ctx = new InitialContext();
Object o = ctx.lookup("java:comp/env/jdbc/loanauditor");
log.debug("loanauditor from JNDI: " + o.getClass().getName());
ds = (org.enhydra.jdbc.pool.StandardXAPoolDataSource) o;
ds.setJdbcTestStmt("SELECT 1");
} catch (NamingException ne) {
log.fatal(ne.getMessage(), ne);
throw new RuntimeException(ne);
}
}
--> logging:
2003-12-04 05:25:39,157 [main] DEBUG
com.socotech.loanauditor.dao.AbstractDAO - loanauditor from JNDI:
org.enhydra.jdbc.pool.StandardXAPoolDataSource
--> stacktrace:
java.lang.ClassCastException
at com.socotech.loanauditor.dao.AbstractDAO.<init>(AbstractDAO.java:31)
at
com.socotech.loanauditor.dao.TorqueDomainTypeDAO.<init>(TorqueDomainTypeDAO.
java:34)
at
com.socotech.loanauditor.dao.TorqueDomainTypeDAO.getInstance(TorqueDomainTyp
eDAO.java:29)
at
com.socotech.loanauditor.dao.DAOFactory.getDomainTypeDAO(DAOFactory.java:79)
at
com.socotech.loanauditor.web.listener.DomainTypeLoader.contextInitialized(Do
mainTypeLoader.java:32)
at
org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:
3271)
at
org.apache.catalina.core.StandardContext.start(StandardContext.java:3613)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1188)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:754)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1188)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:363)
at org.apache.catalina.core.StandardService.start(StandardService.java:497)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:2190)
at org.apache.catalina.startup.Catalina.start(Catalina.java:512)
at org.apache.catalina.startup.Catalina.execute(Catalina.java:400)
at org.apache.catalina.startup.Catalina.process(Catalina.java:180)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39
)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:203)
Thanks in advance for any insight.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]