Hello World
Java技术学习
posts - 17,  comments - 7,  trackbacks - 0
原文地址: http://blog.csdn.net/mshust2006/archive/2006/08/07/1033876.aspx


今天帮一同事配置一个数据源,采用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的版本就不保了,谁叫咱用的开源的东东了,版本的兼容就不能恭维了!
posted on 2006-10-31 09:41 Java初心 阅读(463) 评论(0)  编辑  收藏 所属分类: web配置

只有注册用户登录后才能发表评论。


网站导航:
 

<2024年5月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

常用链接

留言簿(1)

随笔分类

随笔档案

文章分类

文章档案

搜索

  •  

最新评论

阅读排行榜

评论排行榜