I'm trying to get a JNDI example running but I have run into trouble.
I'm using tomcat 4.0b3 on a RedHat Linux 6.2 box with JDK 1.3.0_02

I've created a servlet that tries to get the InitialContext in the init()
method but I always
get an exception when I run it.  Here is the servlet:

import javax.naming.NamingException;
import javax.naming.NameNotFoundException;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.directory.InitialDirContext;

import javax.sql.*;

import javax.servlet.*;
import javax.servlet.http.*;


public class NamingServlet extends HttpServlet
{
        public void init() throws ServletException
        {
                DataSource datasource = null;
                InitialContext ic = null;
                String DATASOURCE_NAME = "java:comp/env/jdbc/NamingDataSource";

                try
                {
                        ic = new InitialContext();
                }
                catch (NamingException ne)
                {
                        throw new ServletException("Naming Exception while 
instantiating an Initial
Context:\n" + ne.getMessage());
                }

                try
                {
                        datasource = (DataSource)ic.lookup(DATASOURCE_NAME);
                }
                catch (NameNotFoundException ne)
                {
                        throw new ServletException("NamingNotFound Exception while 
looking up " +
DATASOURCE_NAME + ":\n" + ne.getMessage());
                }
                catch (NamingException ne)
                {
                        throw new ServletException("Naming Exception while looking up 
" +
DATASOURCE_NAME + ":\n" + ne.getMessage());
                }
        }
}

I copied the jndi.jar  from catalina into my source lib directory.  I'm using
Oracle 8.1.7
javax.sql package for the DataSource classes but I don't think this is
important since I'm
not even making it that far.  Here's the exception I get when I access the
mapped URL
of http://localhost:8080/naming/naming  :

javax.servlet.ServletException: Naming Exception while instantiating an Initial
Context:
Cannot instantiate class: org.apache.naming.java.javaURLContextFactory
        at NamingServlet.init(NamingServlet.java:27)
        at javax.servlet.GenericServlet.init(GenericServlet.java:258)
        at
org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:802)
        at
org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:583)
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:231)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:879)
        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:225)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:879)
        at
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2175)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
        at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:446)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:879)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:162)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
        at
org.apache.catalina.valves.RequestDumperValve.invoke(RequestDumperValve.java:219)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:879)
        at
org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:827)
        at
org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:904)
        at java.lang.Thread.run(Thread.java:484)

I have the tomcat examples running, including the JNDI example, but I can't see
what I'm
doing that is different.  The only vague clue that I have is the
class-not-found
exception for org.apache.naming.java.javaURLContextFactory but I don't know
where to
go from there.

Any help would be appreciated,
Kevin.


____________________________________________________________
Do You Yahoo!?
Get your free @yahoo.co.uk address at http://mail.yahoo.co.uk
or your free @yahoo.ie address at http://mail.yahoo.ie

Reply via email to