Hello: Has anyone gotten Castor to work using JNDI and the JBCP pooling mechanism?
My platform is Tomcat 4.0.6, Apache 2.0.43, and MySQL 3.23.53a on RedHat Linux 8.0. When I try to load the JDO object from the JNDI context, here is the error I get: javax.naming.NamingException: Cannot create resource instance at org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory. java:167) at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:311) at org.apache.naming.NamingContext.lookup(NamingContext.java:834) at org.apache.naming.NamingContext.lookup(NamingContext.java:181) at org.apache.naming.NamingContext.lookup(NamingContext.java:822) at org.apache.naming.NamingContext.lookup(NamingContext.java:181) at org.apache.naming.NamingContext.lookup(NamingContext.java:822) at org.apache.naming.NamingContext.lookup(NamingContext.java:181) at org.apache.naming.NamingContext.lookup(NamingContext.java:822) at org.apache.naming.NamingContext.lookup(NamingContext.java:194) at org.apache.naming.SelectorContext.lookup(SelectorContext.java:183) at javax.naming.InitialContext.lookup(InitialContext.java:354) at top.Utils.getJDO(Utils.java:31) Here is the code that I am using to get the JDO instance: package top; // imports public class Utils { public static synchronized JDO getJDO() throws NamingException, SQLException, MappingException { ClassLoader loader = Utils.class.getClassLoader(); URL url = loader.getResource("database.xml"); JDO.loadConfiguration(url.toString()); InitialContext ctx = new InitialContext(); return (JDO) ctx.lookup( "java:comp/env/jdo/videoSearchPPV" ); } } Here is my web.xml: <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <resource-ref> <description>Resource reference to DataSource</description> <res-ref-name>jdbc/videoSearchPPV</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> <resource-ref> <description>Resource reference to JDO</description> <res-ref-name>jdo/videoSearchPPV</res-ref-name> <res-type>org.exolab.castor.jdo.JDO</res-type> <res-auth>Container</res-auth> </resource-ref> </web-app> Here is my database.xml: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE databases PUBLIC "-//EXOLAB/Castor JDO Configuration DTD Version 1.0//EN" "http://castor.exolab.org/jdo-conf.dtd"> <database name="videoSearchPPV" engine="mysql"> <jndi name="java:comp/env/jdbc/videoSearchPPV" /> <mapping href="mapping.xml"/> </database> Here is what I put in tomcat's server.xml: <Service name="Tomcat-Apache"> <Connector ...> <Engine ...> <DefaultContext reloadable="true" > <Resource auth="Container" name="jdo/videoSearchPPV" scope="Shareable" type="org.exolab.castor.jdo.JDO"/> <Resource auth="Container" name="jdbc/videoSearchPPV" scope="Shareable" type="javax.sql.DataSource"/> <ResourceParams name="jdbc/videoSearchPPV"> <parameter> <name>factory</name> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> </parameter> <parameter> <name>url</name> <value>jdbc:mysql://localhost:3306/videoSearchPPV</value> </parameter> <parameter> <name>password</name> <value>[The password to my database]</value> </parameter> <parameter> <name>maxWait</name> <value>100</value> </parameter> <parameter> <name>maxActive</name> <value>100</value> </parameter> <parameter> <name>driverClassName</name> <value>com.mysql.jdbc.Driver</value> </parameter> <parameter> <name>username</name> <value>videoSearchPPV</value> </parameter> <parameter> <name>maxIdle</name> <value>30000</value> </parameter> </ResourceParams> </DefaultContext> Any ideas? Thanks, Neil. -- Neil Aggarwal JAMM Consulting, Inc. (972) 612-6056, http://www.JAMMConsulting.com Custom Internet Development Websites, Ecommerce, Java, databases -- To unsubscribe, e-mail: <mailto:tomcat-user-unsubscribe@;jakarta.apache.org> For additional commands, e-mail: <mailto:tomcat-user-help@;jakarta.apache.org>