JBOSS JNDI ERROR: Could not find datasource: ccib0Data
francesco.bonavia Apr 18, 2012 12:53 PMHi to all,
I'm trying to deploy a web application called "CibAudit" using a JNDI connection in hibernate with JBOSS 5.1
First of all I post you some files of my project:
*******************************************************************************
"WEB.XML"
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name>Cibaudit Web Application</display-name>
<servlet>
<servlet-name>cibaudit</servlet-name>
<servlet-class>com.sanpaolo.cibaudit.servlet.CibAuditServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>ShowConsuntivi</servlet-name>
<servlet-class>com.sanpaolo.cibaudit.servlet.ShowConsuntiviServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>ShowBudget</servlet-name>
<servlet-class>com.sanpaolo.cibaudit.servlet.ShowBudgetServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>ShowHome</servlet-name>
<servlet-class>com.sanpaolo.cibaudit.servlet.ShowHomeServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>ConsRicerca</servlet-name>
<servlet-class>com.sanpaolo.cibaudit.servlet.ConsRicercaServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>ConsInvio</servlet-name>
<servlet-class>com.sanpaolo.cibaudit.servlet.ConsInvioServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>BudgetRicerca</servlet-name>
<servlet-class>com.sanpaolo.cibaudit.servlet.BudgetRicercaServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>BudgetRevAuto</servlet-name>
<servlet-class>com.sanpaolo.cibaudit.servlet.BudgetRevAutoServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>BudgetRevPunt</servlet-name>
<servlet-class>com.sanpaolo.cibaudit.servlet.BudgetRevPuntServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>ConsLoadRettifica</servlet-name>
<servlet-class>com.sanpaolo.cibaudit.servlet.ConsLoadRettificaServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>SearchConsRettifica</servlet-name>
<servlet-class>com.sanpaolo.cibaudit.servlet.SearchConsRettificaServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>SearchBudgetRettifica</servlet-name>
<servlet-class>com.sanpaolo.cibaudit.servlet.SearchBudgetRettificaServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>BudgetLoadRevPunt</servlet-name>
<servlet-class>com.sanpaolo.cibaudit.servlet.BudgetLoadRevPuntServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>BudgetLoadRevAuto</servlet-name>
<servlet-class>com.sanpaolo.cibaudit.servlet.BudgetLoadRevAutoServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>LoginPrepare</servlet-name>
<servlet-class>com.sanpaolo.cibaudit.servlet.login.LoginPrepareServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>Login</servlet-name>
<servlet-class>com.sanpaolo.cibaudit.servlet.login.LoginServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>LoginBack</servlet-name>
<servlet-class>com.sanpaolo.cibaudit.servlet.LoginBackServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>SearchBudgetRettifica</servlet-name>
<url-pattern>/SearchBudgetRettifica.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>LoginBack</servlet-name>
<url-pattern>/security/LoginBack.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Login</servlet-name>
<url-pattern>/login/Login.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>LoginPrepare</servlet-name>
<url-pattern>/login/LoginPrepare.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>BudgetLoadRevAuto</servlet-name>
<url-pattern>/BudgetLoadRevAuto.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>BudgetLoadRevPunt</servlet-name>
<url-pattern>/BudgetLoadRevPunt.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>SearchConsRettifica</servlet-name>
<url-pattern>/SearchConsRettifica.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ConsLoadRettifica</servlet-name>
<url-pattern>/ConsLoadRettifica.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>BudgetRevPunt</servlet-name>
<url-pattern>/BudgetRevPunt.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>BudgetRevAuto</servlet-name>
<url-pattern>/BudgetRevAuto.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>BudgetRicerca</servlet-name>
<url-pattern>/BudgetRicerca.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ShowBudget</servlet-name>
<url-pattern>/ShowBudget.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ShowHome</servlet-name>
<url-pattern>/ShowHome.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ConsRicerca</servlet-name>
<url-pattern>/ConsRicerca.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ConsInvio</servlet-name>
<url-pattern>/ConsInvio.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>cibaudit</servlet-name>
<url-pattern>/Enter.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ShowConsuntivi</servlet-name>
<url-pattern>/ShowConsuntivi.do</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>60</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<taglib>
<taglib-uri>/WEB-INF/taglib/jsptabcontrol.tld</taglib-uri>
<taglib-location>/WEB-INF/taglib/jsptabcontrol.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/taglib/jsptabcontrol-el.tld</taglib-uri>
<taglib-location>/WEB-INF/taglib/jsptabcontrol-el.tld</taglib-location>
</taglib>
<resource-ref>
<description>Data Source</description>
<res-ref-name>ccib0Data</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
***************************************************************************
Then this the hibernate.cfg.xml file where I set my datasource name.
Do I need to use jdbc/ccib0Data or only ccib0Data?
"hibernate.cfg.xml"
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="connection.datasource">ccib0Data</property>
<property name="hibernate.current_session_context_class">org.hibernate.context.ThreadLocalSessionContext</property>
<property name="hibernate.jdbc.batch_size">30</property>
<property name="hibernate.show_sql">false</property>
<property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>
<!-- SQL dialect -->
<mapping resource="com/sanpaolo/cibaudit/util/model/AuditLogOp.hbm.xml"/>
<mapping resource="com/sanpaolo/cibaudit/util/model/StgAuditRevBdgAt.hbm.xml"/>
<mapping resource="com/sanpaolo/cibaudit/util/model/StgAuditRevBdgPt.hbm.xml"/>
<mapping resource="com/sanpaolo/cibaudit/util/model/StgAuditRetCons.hbm.xml"/>
<mapping resource="com/sanpaolo/cibaudit/util/model/ViewAudit.hbm.xml"/>
<mapping resource="com/sanpaolo/cibaudit/util/model/ScrAuditRetCons.hbm.xml"/>
<mapping resource="com/sanpaolo/cibaudit/util/model/ScrAuditRevBdgAt.hbm.xml"/>
<mapping resource="com/sanpaolo/cibaudit/util/model/ScrAuditRevBdgPt.hbm.xml"/>
</session-factory>
</hibernate-configuration>
******************************************************************************************
Then this is the jboss-web.xml where I set resource-ref with the same name I used in
the web.xml. Is it correct?
"jboss-web.xml"
<?xml version="1.0" encoding="UTF-8"?>
<jboss-web>
<resource-ref>
<res-ref-name>ccib0Data</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<jndi-name>ccib0Data</jndi-name>
</resource-ref>
</jboss-web>
***********************************************************************************
The context.xml contains the resource link name which is the same used in the
web.xml. Is it correct?
"context.xml"
<!-- The contents of this file will be loaded for each web application -->
<Context antiJARLocking="true" antiResourceLocking="true">
<!-- Default set of monitored resources -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<ResourceLink name="ccib0Data"
global="ccib0Data"
type="javax.sql.DataSource"/>
</Context>
*********************************************************************************************
Then I've created a Datasource using the admin-console of JBOSS 5.1.
This is the file of my datasource in JBOSS directory:
"ccib0Data-ds.xml"
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<datasources>
<local-tx-datasource>
<jndi-name>ccib0Data</jndi-name>
<rar-name>jboss-local-jdbc.rar</rar-name>
<use-java-context>true</use-java-context>
<connection-definition>javax.sql.DataSource</connection-definition>
<jmx-invoker-name>jboss:service=invoker,type=jrmp</jmx-invoker-name>
<min-pool-size>0</min-pool-size>
<max-pool-size>20</max-pool-size>
<blocking-timeout-millis>30000</blocking-timeout-millis>
<idle-timeout-minutes>30</idle-timeout-minutes>
<prefill>false</prefill>
<background-validation>false</background-validation>
<background-validation-millis>0</background-validation-millis>
<validate-on-match>true</validate-on-match>
<statistics-formatter>org.jboss.resource.statistic.pool.JBossDefaultSubPoolStatisticFormatter</statistics-formatter>
<isSameRM-override-value>false</isSameRM-override-value>
<allocation-retry>0</allocation-retry>
<allocation-retry-wait-millis>5000</allocation-retry-wait-millis>
<security-domain xsi:type="securityMetaData" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<metadata>
<type-mapping>Oracle9i</type-mapping>
</metadata>
<type-mapping>Oracle9i</type-mapping>
<local-transaction/>
<user-name>CCIB_APP</user-name>
<password>CCIB_APP</password>
<check-valid-connection-sql>SELECT * FROM DUAL</check-valid-connection-sql>
<exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name>
<prepared-statement-cache-size>0</prepared-statement-cache-size>
<share-prepared-statements>false</share-prepared-statements>
<set-tx-query-timeout>false</set-tx-query-timeout>
<query-timeout>0</query-timeout>
<use-try-lock>60000</use-try-lock>
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<connection-url>jdbc:oracle:thin:@angelico.replynet.prv:1522:orcl</connection-url>
</local-tx-datasource>
</datasources>
**************************************************************************************************
After creating all these files I tried to deploy the application in JBOSS 5.1 and all is well.
When I try to access to my application using http://localhost:8080/CibAudit I have this error:
18:17:23,985 INFO [STDOUT] 2012 04 18 18:17:23,985 | FATAL | DatasourceConnect
ionProvider: - Could not find datasource: ccib0Data
javax.naming.NameNotFoundException: ccib0Data not bound
at org.jnp.server.NamingServer.getBinding(NamingServer.java:771)
at org.jnp.server.NamingServer.getBinding(NamingServer.java:779)
at org.jnp.server.NamingServer.getObject(NamingServer.java:785)
at org.jnp.server.NamingServer.lookup(NamingServer.java:443)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:726)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:686)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
at org.hibernate.connection.DatasourceConnectionProvider.configure(Datas
ourceConnectionProvider.java:52)
at org.hibernate.connection.ConnectionProviderFactory.newConnectionProvi
der(ConnectionProviderFactory.java:124)
at org.hibernate.connection.ConnectionProviderFactory.newConnectionProvi
der(ConnectionProviderFactory.java:56)
at org.hibernate.cfg.SettingsFactory.createConnectionProvider(SettingsFa
ctory.java:414)
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:
62)
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2073
)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.jav
a:1298)
*********************************************************************************
Could someone help me?
I don't know where is the error and if the error is in some of my project's file or in the creation of the datasource in JBOSS.
Thanks a lot,
Francesco