Hibernate 3.1+Tomcat 5.5.X(配置JNDI篇)
一、引言在Tomcat从其5.0版本升级到5.5.x版本之后,它的配置发生了很多变化。这些改变明显地影响到Tomcat
JNDI的建立,这反过来又影响到Hibernate—假定你想在自己的Hibernate安装中利用Tomcat
JNDI所提供的方便的DataSource配置的话。
另外,在Hibernate从其3.0版本升级到3.1版本的过程中,在有关获取线程安全的Hibernate会话方面也进行了极大的简化。
从Hibernate的角度来观察,Tomcat是一种混合的环境。Tomcat提供一个JNDI和DataSource—它们都不是一个独立的应
用程序。这个DataSource工具为实现应用程序服务器的可移植性提供了方便。但是,就象一个独立的环境一样,Tomcat并没有提供事务管理器;因
此,你的代码中必须使用Hibernate事务管理器。
到目前为止,我们很难找到有关这两个新版本框架联用的完整的描述—在因特网,甚至在Hibernate.org站点(http://www.hibernate.org)
上都未曾发现。而在其它一些地方找到的相关信息都已过时。原先的Hibernate
3.0参考文档中提供了有关Hibernate/Tomcat集成(基于Tomcat 4.1)的很有用的一章,但在当前Hibernate
3.1的参考文档中已经删除了原有的这一章。因此,我们十分希望,本系列文章(三篇)会对你的工程开发中在新版本的Hibernate和Tomcat联用
方面助一臂之力。
二、Context.xml文件
在Tomcat的早期版本中,你必须经由服务器范围的配置文件—server.xml来配置Tomcat JNDI。为此,你需要在这个文件内包括多个元素,相应于每一个DataSource建立一个元
素。在Tomcat
5.5中,你不再需要使用这个服务器范围的文件来配置JNDI。而是,你只需要把一个应用程序范围的Context.xml放到你的META-INF目录
—例如“C:\Tomcat
5.5\webapps\BasicWeb\META-INF\Context.xml”下。(注意:你可能会在网上看到许多参考资料,其中说,这个文件
应该根据你的应用程序命名—例如YourApp.xml。其实,这是错误的—你应该使用固定的文件名Context.xml。)
下面图1中的屏幕快照展示了在你的Tomcat目录层次下的Context.xml文件的位置:
http://www.运维网.com/files/uploadimg/20061127/133603369.jpg
在你的应用程序的Context.xml文件中,相应于每一个DataSource你都应该包括一个元素。这个元素提供了一组定义DataSource的属性,但是没有子元素。下面是一个应用程序完整的Context.xml文件内容。注意,在此仅要求使用一个DataSource:
docBase="C:\Tomcat 5.5\webapps\BasicWeb"
workDir="C:\Tomcat 5.5\webapps\BasicWeb">
页:
[1]