为 Spring 2 准备 Tomcat
在可以向 Tomcat 成功部署 dwspring.war 文件之前,需要进行一些服务器设置。
在这一节执行的主要过程有:
1. 把 Spring 2 类装入器添加到 Tomcat
2. 把 Spring 2 上下文装入器侦听器添加到 Tomcat
3. 把 DB2 JDBC 驱动程序复制到 Tomcat
4. 为 Tomcat 配置 JNDI DB2 数据源
把 Spring 2 类装入器添加到 Tomcat 服务器
当 Spring JPA 应用程序在 Tomcat 上运行时,要让 JPA 支持正常工作,需要在类装入期间进行字节码“连接”。来自 Tomcat 的标准类装入器不支持这个。需要用特定于 Spring 的类装入器实现这个功能。
要把这个特定于 Spring 的类装入器安装到 Tomcat 服务器,首先要把 spring-tomcat-weaver.jar 拷贝到 Tomcat 的 server/lib 子目录。这个目录包含的库属于 Tomcat 服务器私有。可以在 Spring 2.0 下载的 dist/weaver 目录下找到 spring-tomcat-weaver.jar 库。
接下来,必须让 Tomcat 知道对于示例应用程序,应当替换标准类装入器。可以在 WAR 文件的 META-INF/context.xml 文件中指定这点。清单 25 中的粗体代码配置类装入器:
清单 25. 在 META-INF/context.xml 文件中配置类装入器
<Context>
<Loader loaderClass="org.springframework.instrument.
classloading.tomcat.TomcatInstrumentableClassLoader"/>
...
</Context>
把 Spring 2 的上下文装入器侦听器添加到 Tomcat
Spring 2 要求挂接到 Tomcat 的上下文装入管道。可以在 WAR 文件的 WEB-INF/web.xml 文件添加以下行进行这个配置:
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
在 web.xml 文件中,这必须在 <servlet> 和 <servlet-mapping> 定义之前。
把 DB2 JDBC 驱动程序拷贝到 Tomcat 服务器
Tomcat 是 Web 层容器,所以能够管理自己的数据库连接,也能做连接池。数据库源由 Tomcat 管理,可以通过标准的 Java 命名和目录接口(JNDI)查询机制访问。员工系统在 Tomcat 内作为 Web 应用程序运行,应当通过 Tomcat 的 JNDI 得到数据源。
要让 Tomcat 在 Web 应用程序部署期间找到 JDBC 驱动程序,需要把 JAR 文件拷贝到 Tomcat 的系统库目录。在启动 Tomcat 服务器之前,请把两个 JDBC 驱动程序 JAR 文件从 DB2 发布拷贝到 Tomcat 的 common\lib 目录。这两个文件的名称是 db2cc.jar 和 db2cc_licence_cu.jar。
放在 common\lib 目录中的库可以供 Tomcat 服务器和 Web 应用程序共同使用。
在 Tomcat 5 上配置 DB2 数据源管理和 JNDI
可以把一个应用程序可以访问的 DB2 数据源配置成 Web 应用程序上下文的 JNDI 资源。方法是把清单 26 中突出的代码放在自己 WAR 的 META-INF/context.xml 文件中:
清单 26. 在 META-INF/context.xml 中配置 JNDI 资源
<Context>
...
<Resource name="jdbc/dwspring2" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="bill"
password="lotus123" driverClassName="com.ibm.db2.jcc.DB2Driver"
url="jdbc:db2://192.168.23.36:50000/dwspring"/>
</Context>
需要替换清单 26 中的 DB2 Express-C 服务器主机、用户名和口令,反映自己的 DB2 Express-C 安装情况。
清单 27 的配置通过名称 java:comp/env/jdbc/dwspring2 提供了 JNDI 数据源。
还必须向部署描述符 web.xml 文件添加资源引用。请把这个 <resource-ref> 元素添加到 web.xml 文件的末尾,如清单 27 所示:
清单 27. 添加数据源的 JNDI 资源引用
...
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/dwspring2</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
清单 27 的配置使得可以在 Web 应用程序中使用容器 JDBC 管理的数据源。
2008-03-05_124848.gif