设为首页 收藏本站
查看: 455|回复: 0

[经验分享] spring配置下通过tomcat的jndi服务连接数据库

[复制链接]

尚未签到

发表于 2017-2-7 10:49:26 | 显示全部楼层 |阅读模式
http://77857.blog.iyunv.com/67857/162262

在开发OA系统因为采用了spring+hibernate架构,其中数据源很多,采用jdbc注入到spring中,结果时间长了,数据库容易断开,改成了jndi,jndi由spring去管理
1、配置jndi文件
文件位置
%TOMCAT_HOME% \conf\Catalina\localhost
文件名
webapp工程的名字.xml。如:若工程名为jndidemo,则文件取名为jndidemo.xml。一般情况下该文件会存在。如果不存在可手动创建
文件内容应该有如下格式:
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource
name="jdbc/jndidemo1"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
password="efnx"
maxIdle="2"
maxWait="5000"
username="efnx"
url="jdbc:oracle:thin:@(description=(address_list=(address=(protocol=TCP)(port=1521)(host=192.168.0.240)))(connect_data=(SERVER = DEDICATED)(SERVICE_NAME = db.efriendnet.com)))"
maxActive="4"/>
</Context>
根据具体需要修改相应内容。

2、Spring配置文件
在Spring配置文件中增加如下类似内容
<bean id="jndiDataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>java:comp/env/jdbc/jndidemo1</value>
</property>
</bean>

3、持久化配置文件
对持久化层进行依赖注入时,给dataSource属性注入jndiDataSource即可。如:
<property name=”dataSource” ref=”jndiDataSource”/>

4、数据库驱动
最后别忘了将相应的数据库驱动拷贝到%TOMCAT_HOME%\common\lib下

注意事项:
根据tomcat版本不同,jndi配置文件的写法存在差异。现给出说明:
版本:4.x
这个版本的配置文件一般都写在%TOMCAT_HOME% \conf\server.xml文件中。因为现在基本都在用5.x版本,所以这里就不做详细说明了。
版本:5.0.xx
这个版本将context的内容独立了出来放到了%TOMCAT_HOME% \conf\Catalina\localhost下,且不同的工程生成相应的配置文件,但文件格式和4.x类似:如:
<?xml version='1.0' encoding='gb2312'?>
<Context displayName="Cactus Blog Web Application 1.0" docBase="D:/apache-tomcat-5.5.15/webapps/JndiDemo" path="/JndiDemo" workDir="work\Catalina\localhost\JndiDemo">
<Resource auth="Container" description="Oracle DataBase" name="jdbc/jndidemo" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/jndidemo">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:microsoft:sqlserver://59.151.17.254:1500;DatabaseName=YeeYoo_DB</value>
</parameter>
<parameter>
<name>username</name>
<value>crm</value>
</parameter>
<parameter>
<name>password</name>
<value>crmyeeyoo</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>-1</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>10</value>
</parameter>
</ResourceParams>
</Context>

版本5.5.xx
该版本中给配置文件格式作了较大改动,使其更加简洁。格式内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource
name="jdbc/jndidemo"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
password="efnx"
maxIdle="2"
maxWait="5000"
username="efnx"
url="jdbc:oracle:thin:@(description=(address_list=(address=(protocol=TCP)(port=1521)(host=192.168.0.240)))(connect_data=(SERVER = DEDICATED)(SERVICE_NAME = db.efriendnet.com)))"
maxActive="4"/>
</Context>

请根据不同版本编写相应格式的配置文件否则会出现各种各样不同的问题。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-338730-1-1.html 上篇帖子: 抛弃LCDS和FMS,在tomcat下开发Red5应用(引子) 下篇帖子: 一臺機上啟動多個tomcat 實例
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表