首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Spring + Tomcat 5/6 + JNDI 連線池配置差異全解析

     編輯:Java 相關知識

Tomcat 5 與 6 的 JNDI 資源定義位置不同,導致 Spring 專案遷移常見 NameNotFoundException。本文對比兩版本正確配置。

共通前置作業

  • JDBC 驅動 JAR 放入 Tomcat/lib/ (非專案 WEB-INF/lib)
  • Spring 配置 JndiObjectFactoryBean 統一查找 java:comp/env/jdbc/mldn

Tomcat 5.5 配置 (server.xml)

<Context path="/zhinangtuan" docBase="..." debug="5" reloadable="true" crossContext="true">
  <Resource name="jdbc/mldn" auth="Container" type="javax.sql.DataSource"/>
  <ResourceParams name="jdbc/mldn">
    <parameter><name>factory</name><value>org.apache.commons.dbcp.BasicDataSourceFactory</value></parameter>
    <parameter><name>driverClassName</name><value>org.gjt.mm.mysql.Driver</value></parameter>
    <parameter><name>url</name><value>jdbc:mysql://localhost:3306/mldn</value></parameter>
    <parameter><name>username</name><value>root</value></parameter>
    <parameter><name>password</name><value>mysqladmin</value></parameter>
    <parameter><name>maxActive</name><value>100</value></parameter>
    <parameter><name>maxIdle</name><value>30</value></parameter>
    <parameter><name>maxWait</name><value>5000</value></parameter>
  </ResourceParams>
</Context>

Tomcat 6 配置 (context.xml)

<Context>
  <Resource name="jdbc/mldn"
            auth="Container"
            type="javax.sql.DataSource"
            factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
            driverClassName="com.mysql.jdbc.Driver"
            url="jdbc:mysql://localhost:3306/mldn?useUnicode=true&amp;characterEncoding=utf-8"
            username="root"
            password="123"
            maxActive="100"
            maxIdle="30"
            maxWait="10000" />
</Context>

關鍵差異總結

項目Tomcat 5Tomcat 6
資源定義位置server.xml <Context> 內context.xml (全域或 META-INF/context.xml)
DBCP 工廠類commons.dbcp.BasicDataSourceFactorytomcat.dbcp.dbcp.BasicDataSourceFactory
ResourceParams獨立元素合併為 Resource 屬性
web.xml resource-ref建議宣告可選 (Tomcat 6 自動掃描)

Spring 統一配置

<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean" destroy-method="close">
  <property name="jndiName" value="java:comp/env/jdbc/mldn"/>
</bean>

遷移核心:將資源定義從 server.xml 移至 context.xml,更新工廠類全名,屬性扁平化。建議使用 META-INF/context.xml 隨專案部署,避免修改全域配置。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved