Tomcat 和 Jetty 下 JNDI 配置 DBCP 连接池

Tomcat 的配置如下:(在某个App的context.xml中,或某个虚拟主机的ROOT.xml中)

<?xml version="1.0" encoding="UTF-8"?>
<Context path="">
     
<Resource name="jdbc/pgsqldbcp" 
               auth
="Container" 
               type
="javax.sql.DataSource" 
               factory
="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
               driverClassName
="org.postgresql.Driver"
               url
="jdbc:postgresql://localhost/xxxxdb"
               username
="postgres" 
               password
="xxxx" 
               maxActive
="20" 
     
/>
</Context>


这里使用Tomcat带的tomcat-dbcp.jar包,它包含了 commons-collections.jar, commons-pool.jar, commons-dbcp.jar,如果不使用tomcat-dbcp.jar 则需要将上述3个包拷贝到 Tomcat的lib中。另外把数据库的驱动包拷贝到Tomcat的lib中,就可以了。

Jetty 下的配置如下:(在jetty-env.xml文件中)

<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" 
     "http://jetty.mortbay.org/configure.dtd"
>
<Configure class="org.mortbay.jetty.webapp.WebAppContext">
    
<New id="pgsqldbcp" class="org.mortbay.jetty.plus.naming.Resource">
        
<Arg>jdbc/pgsqldbcp</Arg>
        
<Arg>
            
<New class="org.apache.commons.dbcp.BasicDataSource">
                
<Set name="driverClassName">org.postgresql.Driver</Set>
                
<Set name="url">jdbc:postgresql://localhost/xxxxdb</Set>
                
<Set name="username">postgres</Set>
                
<Set name="password">xxxx</Set>
                
<Set name="maxActive">10</Set>
            
</New>
        
</Arg>
    
</New>
</Configure>


如果使用maven-jetty-plugin插件开发应用,在pom.xml如下配置:

<plugin>
    
<groupId>org.mortbay.jetty</groupId>
    
<artifactId>maven-jetty-plugin</artifactId>
    
<version>6.1.7</version>
    
<configuration>
        
<webDefaultXml>src/test/resources/webdefault.xml</webDefaultXml>
        
<jettyEnvXml>src/test/resources/jetty-env.xml</jettyEnvXml>
        
<contextPath>/exjour</contextPath>
        
<scanIntervalSeconds>10</scanIntervalSeconds>
        
<connectors>
            
<connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
                
<port>8000</port>
                
<maxIdleTime>60000</maxIdleTime>
            
</connector>
        
</connectors>
    
</configuration>
</plugin>


以上,就完成了Tomcat和Jetty下DBCP在JNDI中的配置,在开发中spring中的dataSource可以按如下形式写:

    <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
        
<property name="jndiName" value="java:comp/env/jdbc/pgsqldbcp"/>
    
</bean>
原文地址:https://www.cnblogs.com/kylindai/p/1342862.html