Tomcat8配置JNDI数据源

使用到的tomcat版本:apache-tomcat-8.0.15-windows-x64

首先我们先将数据库驱动(jar)包放到tomcat安装目录下的lib目录。

单个应用独享数据源

1.找到Tomcat的server.xml找到对应工程的Context节点(我这里要添加数据源的工程师ZTestWebProject),添加一个私有数据源

<Context docBase="ZTestWebProject" path="/ZTestWebProject" reloadable="true" source="org.eclipse.jst.jee.server:ZTestWebProject">
			<Resource name="jdbc/app-adcpwsqlz3-aes-unicode" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="postgres" password="abc123" driverClassName="org.postgresql.Driver" url="jdbc:postgresql://localhost:5432/db_cepa" />
</Context>

配置全局JNDI数据源,应用根据情况自行选择

1.在tomcat的conf/context.xml中,在Context节点下添加数据源

<Resource name="jdbc/app-adcpwsqlz3-aes-unicode" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="postgres" password="abc123" driverClassName="org.postgresql.Driver" url="jdbc:postgresql://localhost:5432/db_cepa" />

也可以将这个数据源配置在conf/server.xml中GlobalNamingResources节点下,作用是一样的

<GlobalNamingResources>
    <!-- Editable user database that can also be used by
         UserDatabaseRealm to authenticate users
    -->
    <Resource auth="Container" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" name="UserDatabase" pathname="conf/tomcat-users.xml" type="org.apache.catalina.UserDatabase"/>
	
	<!-- 配置数据源 -->
	<Resource name="jdbc/app-adcpwsqlz3-aes-unicode" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="postgres" password="abc123" driverClassName="org.postgresql.Driver" url="jdbc:postgresql://localhost:5432/db_cepa" />

</GlobalNamingResources>

2.在应用的web.xml中对数据源进行引用(我这里是在ZTestWebProject下的web.xml)

 <resource-ref>  
	  <description>JNDI DataSource</description>  
	  <res-ref-name>jdbc/app-adcpwsqlz3-aes-unicode</res-ref-name>  
	  <res-type>javax.sql.DataSource</res-type>  
	  <res-auth>Container</res-auth>  
 </resource-ref>

配置全局JNDI数据源,应用到所有应用

1.和【配置全局JNDI数据源,应用根据情况自行选择】的第一步是一样的
2.在tomcat的conf/context.xml中,在Context节点下加一个ResourceLink节点对第一步配置的数据源配置引用

<ResourceLink global="jdbc/app-adcpwsqlz3-aes-unicode" name="jdbc/app-adcpwsqlz3-aes-unicode" type="javax.sql.DataSource" />

加载数据源

代码中我们可以使用如下方式,对数据源进行引用

Context cxt=new InitialContext();
DataSource ds=(DataSource)cxt.lookup("java:comp/env/jdbc/app-adcpwsqlz3-aes-unicode");
Connection connection = ds.getConnection();

如果是Spring环境:

<!-- 方式一,需要引入jee命名空间 -->
<jee:jndi-lookup id="dataSource" jndi-name="jdbc/app-adcpwsqlz3-aes-unicode"/>

<!-- 方式二 -->
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiName">
       <value>jdbc/app-adcpwsqlz3-aes-unicode</value>
    </property>
</bean>
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值