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" />
Share:
13,579
techsjs2012
Author by

techsjs2012

Updated on June 14, 2022

Comments

  • techsjs2012
    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>