1 Reply Latest reply: Dec 10, 2011 7:18 AM by Wolf-Dieter Fink RSS

JNDI lookup fails in load-on-startup servlet Jboss as7

abiya Newbie

Hi,

 

I am able to perform JNDI lookup using the following code in any of my servlet as follows,

 

DataSource ds = null;
Context ctx = null;
try {

        String strDSName = "java:jboss/datasources/Test";
        ctx = new InitialContext();
        ds = (javax.sql.DataSource) ctx.lookup(strDSName);

} catch (Exception e) {

}


But the same code fails if it is invoked from init() method of load-on-startup servlet. My datasource is bound well before this.My console says,

13:26:06,881 INFO  [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-2) Bound data source [java:jboss/datasources/weblogic.jdbc.jts.demopool]

 

web.xml entry

---------------------

  <servlet>
        <servlet-name>StartupServlet</servlet-name>
        <servlet-class>com.metreo.common.web.servlet.StartupServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

 

servlet code

-----------------

public class StartupServlet extends HttpServlet
{

   /**
    * init method
    */
    public void init(ServletConfig a_config)
throws ServletException
    {
super.init(a_config);
        System.out.println("StartupServlet.init() called.");

     try {
   InitialContext ctx = new InitialContext();
   DataSource ds = (javax.sql.DataSource) ctx.lookup("java:jboss/datasources/weblogic.jdbc.jts.demopool");


   System.out.println("context info in StratupServlet init method...."+ds);
   callStartupClasses();
  } catch (NamingException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
       
    }

Please help me resolving this issue. I am stuck with this for a long time.

 

Thanks,
Abiya