the exception means that the nitialContextFactory object specified in your env cannot be located. This might be due to the fact that your jndi.jar contains only the interfaces that are related to jndi (that is, package javax.naming and related packages) but not the JNDI provider classes. you need to add to your classpath these classes, that are usually bundled with the Naming Manager you are trying to access. zm.
-----Original Message----- From: A mailing list about Java Server Pages specification and reference [mailto:[EMAIL PROTECTED]]On Behalf Of Haseltine, Celeste Sent: Wednesday, January 16, 2002 1:07 AM To: [EMAIL PROTECTED] Subject: Using JNDI in a JSP/Servlet I'm attempting to use JNDI with a third party JDBC driver inside of a servlet. When I attempt to call the servlet, my catch block catches the following error message: Error ..... Cannot instantiate class: com.sun.jndi.fscontext.RefFSContextFactory I moved the code into a pure Java class for debugging. The line that the error message occurs on is as follows: ctx = new InitialContext(env); Does anyone have a guess as to why I am unable to instantiate a new Context class? I suspect it may have to do with setting permissions for jndi, but I am not certain. I do have the JNDI.jar file in my server jvm jre\lib\ext subdirectory, and I moved it into my jdk jre\lib\ext subdirectory for debugging the class code. Just for grins I included the jdk jre\lib\ext path in my dev box classpath for testing the class code. The class code is as follows: import java.sql.*; import java.util.Hashtable; import javax.naming.Context; import javax.naming.InitialContext; import javax.sql.DataSource; import net.avenir.jdbcPool.*; import java.util.Hashtable; public class DataSourceTest{ public static void main(String[] argv){ System.out.println("got to beginning"); Context ctx =null; System.out.println("got to 1"); try{ JDBCConnectionPoolDataSource cpds1 = new JDBCConnectionPoolDataSource(); System.out.println("got to 2"); //cpds1.setServerName(""); cpds1.setDatabaseName("Northwind"); cpds1.setPort(1433); Hashtable env = new Hashtable(11); System.out.println("got to 3"); env.put (Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.fscontext.RefFSContextFactory "); System.out.println("got to 4"); env.put(Context.PROVIDER_URL,"file:/"); System.out.println("got to 5"); ctx = new InitialContext(env); //THIS IS THE LINE THE ERROR OCCURS ON System.out.println("got to 6"); ctx.rebind("jdbc:pool:poolDS",cpds1); System.out.println("got to 7"); JDBCDataSource ds1=new JDBCDataSource(); ds1.setDataSourceName("jdbc:pool:poolDS"); env = new Hashtable(); env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.fscontext.RefFSContext Factory"); env.put(Context.PROVIDER_URL,"file:/"); ctx = new InitialContext(env); ctx.rebind("jdbc:datasource",ds1); } catch(Exception e) { System.out.println("Error ..... "+e.getMessage()); } }//end main }//end class definition Thanks in advance for any advice/suggestions. Celeste =========================================================================== To unsubscribe: mailto [EMAIL PROTECTED] with body: "signoff JSP-INTEREST". For digest: mailto [EMAIL PROTECTED] with body: "set JSP-INTEREST DIGEST". Some relevant FAQs on JSP/Servlets can be found at: http://archives.java.sun.com/jsp-interest.html http://java.sun.com/products/jsp/faq.html http://www.esperanto.org.nz/jsp/jspfaq.jsp http://www.jguru.com/faq/index.jsp http://www.jspinsider.com =========================================================================== To unsubscribe: mailto [EMAIL PROTECTED] with body: "signoff JSP-INTEREST". For digest: mailto [EMAIL PROTECTED] with body: "set JSP-INTEREST DIGEST". Some relevant FAQs on JSP/Servlets can be found at: http://archives.java.sun.com/jsp-interest.html http://java.sun.com/products/jsp/faq.html http://www.esperanto.org.nz/jsp/jspfaq.jsp http://www.jguru.com/faq/index.jsp http://www.jspinsider.com
