1. 描述
最近负责一个小功能,项目可以用tomcat或weblogic启动。刚开始用weblogic启动,但是在开发的过程中太费力,更改一个类就需要更新weblogic,更新过程实在太慢,很影响开发效率。于是决定用Tomcat配置jndi,减少开发耗费的时间。
Tomcat部署项目:
2. 分析
刚开始在网上baidu使用Tomcat配置jndi,更改的文件是Tomcat的安装包的server.xml和content.xml。在eclipse中启动Tomcat还是报空指针连接异常,所以断定数据源没有配置成功。个人认为可能是需要将项目打包到webapps才可以使用Tomcat安装路径下配置的jndi。后来偶然发现其实eclipse中有一个Servers文件夹,这里包含eclipse所配置的Tomcat。content.xml和server.xml也是配置数据源的文件,所以我们可以从Servers中配置Tomcat让eclipse项目可以访问jndi。
Servers目录:
3. 解决方法
一、在server.xml
中添加数据库连接地址,在中添加如下内容:
示例数据源:
<Resource name="jdbc/TEST"
auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@172.11.11.11:1521:test"
username="test"
password="test"/>
二、在context.xml
添加jndi全局变量,在 </Context>
上面添加如下内容:
<ResourceLink global="jdbc/TEST" name="jdbc/TEST" type="javax.sql.DataSource"/>
属性中的name对应的值要和上一步 Resource 里面的name值一样。如果有多个数据源,就对应多个Resource和ResourceLink即可。
三、在eclipse项目的web.xml中配置dataSource
<resource-ref>
<res-ref-name>jdbc/TEST</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>