Spring project how do I access JBoss JNDI Datasources
13,579
I assume you can configure DataSource
in JBoss. Notice that you have to define its JNDI name in application server configuration. Once you have the name, simply replace your dataSource
bean with:
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="jdbc/some-name"/>
</bean>
or shortcut:
<jee:jndi-lookup id="dataSource" jndi-name="jdbc/some-name" expected-type="javax.sql.DataSource" />
Author by
techsjs2012
Updated on June 14, 2022Comments
-
techsjs2012 almost 2 years
Below is my current database.xml file for my Spring Project. Can someone please tell me what would have to be changed so I can use a JBoss JNDI datasource in it.. I want to do this so I don't need the config files with the database user and password and url in it.
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jdbc="http://www.springframework.org/schema/jdbc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd"> <!-- Last changed: $LastChangedDate: 2012-11-19 08:53:13 -0500 (Mon, 19 Nov 2012) $ @author $Author: [email protected] $ @version $Revision: 829 $ --> <context:property-placeholder location="classpath:app.properties" /> <context:component-scan base-package="org.uftwf" /> <tx:annotation-driven transaction-manager="hibernateTransactionManager" /> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> <!-- these are C3P0 properties --> <property name="acquireIncrement" value="${database.c3p0.acquireIncrement}" /> <property name="minPoolSize" value="${database.c3p0.minPoolSize}" /> <property name="maxPoolSize" value="${database.c3p0.maxPoolSize}" /> <property name="maxIdleTime" value="${database.c3p0.maxIdleTime}" /> <property name="maxIdleTimeExcessConnections" value="${database.c3p0.maxIdleTimeExcessConnections}" /> <property name="numHelperThreads" value="${database.c3p0.numHelperThreads}" /> <property name="unreturnedConnectionTimeout" value="${database.c3p0.unreturnedConnectionTimeout}" /> <property name="idleConnectionTestPeriod" value="300" /> <property name="driverClass" value="${database.driver}" /> <property name="jdbcUrl" value="${database.url}" /> <property name="user" value="${database.user}" /> <property name="password" value="${database.password}" /> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="annotatedClasses"> <list> <value>org.uftwf.enrollment.model.Contact</value> <value>org.uftwf.enrollment.model.Enrollment</value> <value>org.uftwf.enrollment.model.Member</value> <value>org.uftwf.enrollment.model.Profile</value> <value>org.uftwf.enrollment.model.School</value> </list> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">${hibernate.dialect}</prop> <prop key="hibernate.show_sql">${hibernate.show_sql}</prop> <prop key="hibernate.use_sql_comments">${hibernate.use_sql_comments}</prop> <prop key="format_sql">${format_sql}</prop> </props> </property> </bean> <bean id="hibernateTransactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory" /> </bean> </beans>