You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Sameer Acharya <ac...@yahoo.com> on 2006/09/01 07:42:53 UTC

javax.servlet.ServletException: Cannot create resource instance

Hi,

Iam using Tomcat 5.5.9 and trying to define a bean resource and get an instance of the same inside a jsp thru JNDI lookup,Iam getting the following exception in the browser :
---------

javax.servlet.ServletException: Cannot create resource instance
 org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:848)
 org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:781)
 org.apache.jsp.dates.dtest_jsp._jspService(org.apache.jsp.dates.dtest_jsp:74)
 org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
 javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
 org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
 org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
 org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
 javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
 org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:362)

  root cause 

javax.naming.NamingException: Cannot create resource instance
 org.apache.naming.factory.ResourceEnvFactory.getObjectInstance(ResourceEnvFactory.java:99)
 javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304)
 org.apache.naming.NamingContext.lookup(NamingContext.java:792)
 org.apache.naming.NamingContext.lookup(NamingContext.java:139)
 org.apache.naming.NamingContext.lookup(NamingContext.java:780)
 org.apache.naming.NamingContext.lookup(NamingContext.java:152)
 org.apache.jsp.dates.dtest_jsp._jspService(org.apache.jsp.dates.dtest_jsp:57)
 org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
 javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
 org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
 org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
 org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
 javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
-------------
The entry in server.xml
-
  <GlobalNamingResources>

    <!-- Test entry for demonstration purposes -->
    <Environment name="simpleValue" type="java.lang.Integer" value="30"/>

    <!-- Editable user database that can also be used by
         UserDatabaseRealm to authenticate users -->
    <Resource name="UserDatabase" auth="Container"
              type="org.apache.catalina.UserDatabase"
       description="User database that can be updated and saved"
           factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
          pathname="conf/tomcat-users.xml" />

   <Resource name="bean/MyBeanFactory"  auth="Container" 
            type="dates.PersonBean" 
            factory="org.apache.naming.factory.BeanFactory"  />

  </GlobalNamingResources>
--------
Entry in Web.xml
<resource-env-ref>
  <description>
    Object factory for MyBean instances.
  </description>
  <resource-env-ref-name>
    bean/MyBeanFactory
  </resource-env-ref-name>
  <resource-env-ref-type>
    dates.PersonBean
  </resource-env-ref-type>
</resource-env-ref>
----------
Code snippet inside JSP where lookup is done :

Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
PersonBean pb = (PersonBean) envCtx.lookup("bean/MyBeanFactory");
---------
The bean class exists and I can create an instance directly 
but when I try to do it thru env lookup it throws the above
exception. I also saw a bug registered for the same but it 
was marked as resolved can anyone please tell me whats wrong
with this setting.

Thanks in advance.
-Sameer





 				
---------------------------------
Get your own web address for just $1.99/1st yr. We'll help. Yahoo! Small Business.