Tomcat数据源配置方法_JBuilder中
更新时间:2008年10月07日 23:33:38 作者:
今天帮一同事配置一个数据源,采用tomcat5.5.9,本来是个很简单的事,以前也配过,但由于很长时间没用过容器提供的数据源了(IOC用惯了),也只记的个大概了,所以刚开始一配就出错了,google了一下,有很多资料,照着试试却都不好使(到不是别人说的不对,只是大家用的版本不同)。
其实tomcat中配置数据源有好几中方式,很灵活,所以也容易相互整窜,个人认为比较简单的方法就是在tomcat下的conf文件夹下的server.xml增加
<Context path="/test" docBase="test"
debug= "99" reloadable="true" crossContext="true" verbosity="DEBUG">
<Resource name="jdbc/***" auth="Container"
type="javax.sql.DataSource" password="****"
driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
maxIdle="2"
maxWait="5000"
username="sa"
url="jdbc:microsoft:sqlserver://192.168.*.*:1433;DatabaseName=***"
maxActive="4"/>
</Context>
注意它是加在</host>前的,另外由于采用的tomcat5.5.9,所以数据源的配置信息采用属性的形式写,不能用结点的形式,tomcat5.0.X好象可以。
改了tomcat的server.xml文件后,剩下一个要改的地方就是在你的web项目中的web.xml中加入引用
<resource-ref>
<description>Resource reference to a factory for java.sql.Connection
instances that may be used for talking to a particular
database that is configured in the server.xml file.</description>
<res-ref-name>jdbc/***</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
仅仅需要改这两个地方就能在web程序中使用tomcat提供的数据源,但这样做,你可以将你生成的war包放在容器下运行,却不能在jbuilder中启动项目,因为jbuilder启动web项目时是不会去读你指定的tomcat中的server.xml的,这样的话数据源就不可用了,如果我们不能在jbuilder中启动项目,我门就不能在调试状态下来运行了,这样对我们来写程序就没有太大意义了(当然我们可以在外面启动tomcat,采用远程调试的方法,这样即可以使用数据源,也可以调试修改程序,但这个有点杀鸡用牛刀的意思,不推荐),实际上jbuilder在启动web项目时它会在工程目录下建立一个tomcat文件架,它会去读conf下的server8080.xml文件(8080为你为tomcat设定的端口),所以我们要想在jbuilder中启动数据源,必须要在该配置文件中加上数据源信息),具体的是将server8080.xml中的一条注释删掉,(否则它仍然会是临时文件,会被覆盖的)在<host>结点中加上
<Resource name="jdbc/***" auth="Container"
type="javax.sql.DataSource" password="****"
driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
maxIdle="2"
maxWait="5000"
username="sa"
url="jdbc:microsoft:sqlserver://192.168.*.*:1433;DatabaseName=***"
maxActive="4"/>
注意这里<context>结点可用它自身的,不要修改,重启项目,这时你就可以使用数据源了。之所以在jbuilder中启动web项目有点麻烦,是它没有把项目发布到tomcat的webapp下面去,而是把tomcat的一些东西拿过来了(相当于),象eclispe或idea就没有这种问题了。
以上所说的配置数据源是在tomcat5.5.9下实验的,估计5.5.x应该都没啥问题,要是别的tomcat的版本就不保了,谁叫咱用的开源的东东了,版本的兼容就不能恭维了!
复制代码 代码如下:
<Context path="/test" docBase="test"
debug= "99" reloadable="true" crossContext="true" verbosity="DEBUG">
<Resource name="jdbc/***" auth="Container"
type="javax.sql.DataSource" password="****"
driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
maxIdle="2"
maxWait="5000"
username="sa"
url="jdbc:microsoft:sqlserver://192.168.*.*:1433;DatabaseName=***"
maxActive="4"/>
</Context>
注意它是加在</host>前的,另外由于采用的tomcat5.5.9,所以数据源的配置信息采用属性的形式写,不能用结点的形式,tomcat5.0.X好象可以。
改了tomcat的server.xml文件后,剩下一个要改的地方就是在你的web项目中的web.xml中加入引用
复制代码 代码如下:
<resource-ref>
<description>Resource reference to a factory for java.sql.Connection
instances that may be used for talking to a particular
database that is configured in the server.xml file.</description>
<res-ref-name>jdbc/***</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
仅仅需要改这两个地方就能在web程序中使用tomcat提供的数据源,但这样做,你可以将你生成的war包放在容器下运行,却不能在jbuilder中启动项目,因为jbuilder启动web项目时是不会去读你指定的tomcat中的server.xml的,这样的话数据源就不可用了,如果我们不能在jbuilder中启动项目,我门就不能在调试状态下来运行了,这样对我们来写程序就没有太大意义了(当然我们可以在外面启动tomcat,采用远程调试的方法,这样即可以使用数据源,也可以调试修改程序,但这个有点杀鸡用牛刀的意思,不推荐),实际上jbuilder在启动web项目时它会在工程目录下建立一个tomcat文件架,它会去读conf下的server8080.xml文件(8080为你为tomcat设定的端口),所以我们要想在jbuilder中启动数据源,必须要在该配置文件中加上数据源信息),具体的是将server8080.xml中的一条注释删掉,(否则它仍然会是临时文件,会被覆盖的)在<host>结点中加上
复制代码 代码如下:
<Resource name="jdbc/***" auth="Container"
type="javax.sql.DataSource" password="****"
driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
maxIdle="2"
maxWait="5000"
username="sa"
url="jdbc:microsoft:sqlserver://192.168.*.*:1433;DatabaseName=***"
maxActive="4"/>
注意这里<context>结点可用它自身的,不要修改,重启项目,这时你就可以使用数据源了。之所以在jbuilder中启动web项目有点麻烦,是它没有把项目发布到tomcat的webapp下面去,而是把tomcat的一些东西拿过来了(相当于),象eclispe或idea就没有这种问题了。
以上所说的配置数据源是在tomcat5.5.9下实验的,估计5.5.x应该都没啥问题,要是别的tomcat的版本就不保了,谁叫咱用的开源的东东了,版本的兼容就不能恭维了!
相关文章
Springboot工具类ReflectionUtils使用教程
这篇文章主要介绍了Springboot内置的工具类之ReflectionUtils的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧2022-12-12
最新评论