You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Vanga Reddy <va...@email1.dss.state.va.us> on 2002/03/11 22:30:14 UTC

Newbie: JNDI lookup error

I am getting the following error.

1) Error

javax.servlet.ServletException: Cannot create resource instance
	at
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImp
l.java:463)
	at org.apache.jsp.index$jsp._jspService(index$jsp.java:155)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
	at
org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.ja
va:202)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:382)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:474)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
	at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:247)
	at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:193)
	at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:243)
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
	at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
	at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va:190)
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
	at
org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:2
46)
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
64)
	at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
	at
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2343)
	at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180
)
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
	at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.
java:170)
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
64)
	at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170
)
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
64)
	at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
	at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
:174)
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
	at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
	at
org.apache.catalina.connector.warp.WarpRequestHandler.handle(WarpRequestHand
ler.java:217)
	at
org.apache.catalina.connector.warp.WarpConnection.run(WarpConnection.java:19
4)
	at java.lang.Thread.run(Thread.java:536)
root cause
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:835)
	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 EmployeeBean.init(EmployeeBean.java:33)
	at org.apache.jsp.index$jsp._jspService(index$jsp.java:106)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
	at
org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.ja
va:202)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:382)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:474)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
	at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:247)
	at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:193)
	at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:243)
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
	at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
	at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va:190)
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
	at
org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:2
46)
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
64)
	at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
	at
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2343)
	at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180
)
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
	at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.
java:170)
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
64)
	at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170
)
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
64)
	at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
	at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
:174)
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
	at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
	at
org.apache.catalina.connector.warp.WarpRequestHandler.handle(WarpRequestHand
ler.java:217)
	at
org.apache.catalina.connector.warp.WarpConnection.run(WarpConnection.java:19
4)
	at java.lang.Thread.run(Thread.java:536)

2) web.xml file

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application
2.2//EN
" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
   <web-app id="WebApp_ID">
      <servlet id="Servlet_1">
         <servlet-name>index</servlet-name>
         <jsp-file>index.jsp</jsp-file>
         <load-on-startup>1</load-on-startup>
      </servlet>
      <welcome-file-list id="WelcomeFileList_1">
         <welcome-file>index.jsp</welcome-file>
      </welcome-file-list>
      <resource-ref>
        <description>
          Resource reference to a factory for java.sql.Connection
          instances that may be used for talking to a particular
          database that is configured in the server.xml file.
        </description>
        <res-ref-name>
          jdbc/emain1
        </res-ref-name>
        <res-type>
          oracle.jdbc.pool.OracleConnectionPoolDataSource
        </res-type>
        <res-auth>
          Container
        </res-auth>
      </resource-ref>
   </web-app>

3) server.xml file (relevant part)

        <Context path="/emain1" docBase="emain1" debug="0"
                 reloadable="true" crossContext="true">
          <Logger className="org.apache.catalina.logger.FileLogger"
                     prefix="localhost_emain1_log." suffix=".txt"
                  timestamp="true"/>
           <Resource name="jdbc/emain1" auth="Container"

type="oracle.jdbc.pool.OracleConnectionPoolDataSource"/>
           <ResourceParams name="jdbc/emain1">
             <parameter>
               <name>user</name>
               <value>uname</value>
             </parameter>
             <parameter>
               <name>password</name>
               <value>pwd</value>
             </parameter>
             <parameter>
               <name>url</name>
               <value>jdbc:oracle:thin:@host:1526:SID</value>
             </parameter>
           </ResourceParams>
          <Resource name="mail/Session" auth="Container"
                    type="javax.mail.Session"/>
          <ResourceParams name="mail/Session">
            <parameter>
              <name>mail.smtp.host</name>
              <value>localhost</value>
            </parameter>
          </ResourceParams>
        </Context>

4) The java file.

import javax.sql.*;
import javax.naming.*;
import oracle.jdbc.pool.*;
import oracle.jdbc.driver.*;
import oracle.jdbc.*;

public class EmployeeBean
{
        private java.sql.ResultSet rset;
        public EmployeeBean() {}

  public void init(String str)
       throws SQLException,Exception
  {
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
OracleConnectionPoolDataSource ds =  // line 33 as indicated in error trace
                (OracleConnectionPoolDataSource)
envCtx.lookup("jdbc/emain1");
 PooledConnection pc  = ds.getPooledConnection();
Connection conn = pc.getConnection();

.............
  }
}


I am using tomcat 4.0.x on RedHat Linux 7.1 with oracle9i jdbc driver.
(jsdk1.4.x)

How do I get around this problem?

Thanks

Vanga


--
To unsubscribe:   <ma...@jakarta.apache.org>
For additional commands: <ma...@jakarta.apache.org>
Troubles with the list: <ma...@jakarta.apache.org>