[jboss-user] [Persistence, JBoss/CMP, Hibernate, Database] - Re: Referenced datasource not found with JBoss 5.0 (Beta4)

jaikiran do-not-reply at jboss.com
Sat Apr 12 10:58:12 EDT 2008


I think what "depryf" is trying to do is, define a resource-ref named "app-specific/datasource" for the "java:/app/datasource" datasource and then use java:comp/env/app-specific/datasource as the jndi-name for looking up the datasource.

depryf,

Going by the exception stacktrace, i guess this is what is happening:
anonymous wrote : 
  |  at $Proxy109.getDbColumnInfo(Unknown Source)
  |         at com.imsweb.seerdms.shared.util.PropertyMappingsUtils.initialize(PropertyMappingsUtils.jav
  | a:139)
  |         at com.imsweb.seerdms.shared.util.PropertyMappingsUtils.initialize(PropertyMappingsUtils.jav
  | a:111)
  |         at com.imsweb.seerdms.web.shared.configuration.ConfigurationServlet.init(ConfigurationServle
  | t.java:158)
  |         at javax.servlet.GenericServlet.init(GenericServlet.java:212)

anonymous wrote :  at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:629)
  |         at javax.naming.InitialContext.lookup(InitialContext.java:392)
  |         at com.imsweb.seerdms.shared.api.ServiceLocator.lookup(ServiceLocator.java:631)
  |         at com.imsweb.seerdms.shared.api.ServiceLocator.getConnection(ServiceLocator.java:597)
  |         at com.imsweb.seerdms.app.shared.dao.hibernate.HibernateCommonDataDAO.getDbColumnInfo(Hibern
  | ateCommonDataDAO.java:97)

You have a resource-ref defined in your web component, in which you have a startup servlet. This startup servlet will then have access to the java:comp/env/app-specific/datasource datasource. Based on the exception stacktrace, i can see that in the init method of your startup servlet you are looking up an EJB and invoking an method on the EJB. The EJB then (i guess through a DAO) tries to lookup the datasource using java:comp/env/app-specific/datasource jndi-name. This is not going to work because, the EJB has its own java:comp/env namespace. Since you have specified the resource-ref for your web component and not the EJB component, the java:comp/env namespace will be empty for the EJB and hence the lookup fails.

Just to verify this, you can lookup the datasource "java:comp/env/app-specific/datasource" directly in the init method of the startup servlet. I believe you should be able to successfully get the datasource. 

If you want the datasource to be available at java:comp/env namespace of the EJB, then you will have to define a resource-ref through the ejb-jar.xml and jboss.xml for the EJB.



View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4143648#4143648

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4143648



More information about the jboss-user mailing list