Thank you. Good point but basically the same result:

=== EXCEPTION ================================================
javax.servlet.ServletException: Failed initialization
        org.cliftonfarm.xbasic.Controller.init(Controller.java:32)
        javax.servlet.GenericServlet.init(GenericServlet.java:212)
        
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:291)
        
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
        
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
        org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
        java.lang.Thread.run(Thread.java:636)

root cause 

javax.naming.NameNotFoundException: Name configName is not bound in this Context
        org.apache.naming.NamingContext.lookup(NamingContext.java:770)
        org.apache.naming.NamingContext.lookup(NamingContext.java:140)
        org.apache.naming.NamingContext.lookup(NamingContext.java:781)
        org.apache.naming.NamingContext.lookup(NamingContext.java:140)
        org.apache.naming.NamingContext.lookup(NamingContext.java:781)
        org.apache.naming.NamingContext.lookup(NamingContext.java:153)
        org.apache.naming.SelectorContext.lookup(SelectorContext.java:152)
        javax.naming.InitialContext.lookup(InitialContext.java:409)
        javax.naming.InitialContext.doLookup(InitialContext.java:282)
        org.cliftonfarm.xbasic.Controller.init(Controller.java:29)
        javax.servlet.GenericServlet.init(GenericServlet.java:212)
...

=== init() ================================================
        @Override
        public void init() throws ServletException {
                super.init();
        // get & store JNDI info
        try {
                        configName = 
InitialContext.doLookup("java:comp/env/configName");
        }
        catch (NamingException e) {
                        throw new ServletException("Failed initialization", e);
        }
        log(getClass().getName() +": Successfully initialized. configName=[" 
+configName +"]");
        }


On Thu, 2011-09-22 at 16:50 +0100, Pid * wrote:
> Why not do your initialisation in the Servlet.init() method?
> 
> 
> p
> 
> On 22 Sep 2011, at 16:42, Tim Watts <t...@cliftonfarm.org> wrote:
> 
> > Hello,
> >
> > My very basic servlet fails to initialize when trying to read its JNDI
> > environment entry. The app context name is xbasic. The context.xml is in
> > xbasic.war's META-INF directory and TomCat (6.0.33) correctly copies it
> > to ${tomcat.home}/conf/Catalina/localhost/xbasic.xml on first deploy.
> > Below are the relevant snippets. Can anyone see what I'm doing wrong or
> > is this a bug?
> >
> > BTW, I'm running this under openjdk 6.
> >
> >
> > === EXCEPTION ================================================
> > javax.servlet.ServletException: Error instantiating servlet class 
> > org.cliftonfarm.xbasic.Controller
> >    
> > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
> >    
> > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:291)
> >    
> > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
> >    
> > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
> >    org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
> >    java.lang.Thread.run(Thread.java:636)
> >
> > root cause
> >
> > javax.naming.NameNotFoundException: Name configName is not bound in this 
> > Context
> >    org.apache.naming.NamingContext.lookup(NamingContext.java:770)
> >    org.apache.naming.NamingContext.lookup(NamingContext.java:140)
> >    org.apache.naming.NamingContext.lookup(NamingContext.java:781)
> >    org.apache.naming.NamingContext.lookup(NamingContext.java:140)
> >    org.apache.naming.NamingContext.lookup(NamingContext.java:781)
> >    org.apache.naming.NamingContext.lookup(NamingContext.java:153)
> >    org.apache.naming.SelectorContext.lookup(SelectorContext.java:152)
> >    javax.naming.InitialContext.lookup(InitialContext.java:409)
> >    javax.naming.InitialContext.doLookup(InitialContext.java:282)
> >    org.cliftonfarm.xbasic.Controller.<init>(Controller.java:28)
> >    sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
> > ...
> >
> > === context.xml ================================================
> > <Context unpackWAR="false" privileged="false" antiResourceLocking="false" 
> > antiJARLocking="false">
> >    <Environment
> >        name="configName"
> >        value="${catalina.base}/local/xbasic/config/master.properties"
> >        description="Full path name of the config file."
> >        type="java.lang.String"/>
> >
> > </Context>
> >
> > === web.xml ================================================
> > <?xml version="1.0" encoding="UTF-8"?>
> > <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
> > xmlns="http://java.sun.com/xml/ns/javaee"; 
> > xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"; 
> > xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
> > http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"; id="WebApp_ID" 
> > version="2.5">
> >  <display-name>Archetype Created Web Application</display-name>
> >  <servlet>
> >    <servlet-name>Controller</servlet-name>
> >    <servlet-class>org.cliftonfarm.xbasic.Controller</servlet-class>
> >  </servlet>
> >  <servlet-mapping>
> >    <servlet-name>Controller</servlet-name>
> >    <url-pattern>/*</url-pattern>
> >  </servlet-mapping>
> >  <env-entry>
> >      <env-entry-name>configName</env-entry-name>
> >      <env-entry-type>java.lang.String</env-entry-type>
> >  </env-entry>
> > </web-app>
> >
> > === Servlet constructor ========================================
> > public class Controller extends HttpServlet {
> >    private static final long serialVersionUID = 1L;
> >    private String configName;
> >
> >    /**
> >     * @throws NamingException
> >     * @see HttpServlet#HttpServlet()
> >     */
> >    public Controller() throws NamingException {
> >        super();
> >        // get & store JNDI info
> >        configName = InitialContext.doLookup("java:comp/env/configName"); // 
> > line 28
> >        log(getClass().getName() +": Successfully initialized. configName=[" 
> > +configName +"]");
> >    }
> > ...
> >
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: users-h...@tomcat.apache.org
> 



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

Reply via email to