tomcat中配置servlet.xml的JNDI或JDBC连接数据库【原】

tomcat中配置servlet.xml的JNDI或JDBC连接数据库

一. JNDI

1. tomcat环境

找到X:\xxx\......\apache-tomcat-6.0.39\conf\server.xml,在<Host>节点中配置如下:

 

<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
    <Context path="/platformproxy" docBase="C:/Users/King/Workspaces/KingTool/WebContent/" reloadable="false">
    
    <Resource name="jdbc/platformproxy" factory="org.apache.commons.dbcp.BasicDataSourceFactory" 
        type="javax.sql.DataSource" maxActive="50" maxIdle="10" maxWait="30" 
        username="myusername" password="mypassword" 
        driverClassName="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@192.168.1.8:1521/orcl"/>
    </Context>
</Host>

 

补充说明:如果报错如下错Cannot create PoolableConnectionFactory (Io 异常: Invalid connection string format, a valid format is: "host:port:sid" ),试着把  factory="org.apache.commons.dbcp.BasicDataSourceFactory"删掉.

设置<context的reloadable为"false">,可以让项目更改java文件免重启直接生产.

在eclipse的项目中配置数据dataSource如下:

<!-- 数据源定义一 -->
<bean id="myDataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiName">
    <value>java:comp/env/jdbc/platformproxy</value> <!-- 需要带java:comp/env/ -->
    </property>
</bean>

 tomcat完整的配置:

http://www.cnblogs.com/whatlonelytear/articles/7217415.html

<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true" xmlNamespaceAware="false" xmlValidation="false">

       <Context docBase="D:\application\myserver\WebContent" path="/fileupload" reloadable="false">
            
                <Resource  
                    name="jdbc/TestDB"  JNDI数据源的name,查找时用:java:comp/env/jdbc/TestDB  
                    type="javax.sql.DataSource"  数据源类型
                    factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"  数据源工场
                    driverClassName="com.mysql.jdbc.Driver" JDBC驱动类  
                    url="jdbc:mysql://localhost:3306/test?  
                    characterEncoding=UTF-8&amp;autoReconnectForPools=true&amp;rewriteBatchedStatements=true&amp;useCursorFetch=true&amp;defaultFetchSize=20" 数据库URL地址    
                    username="xxx" 访问数据库用户名  
                    password="xxx" 访问数据库的密码  
                       
                    maxWait="3000" 从池中取连接的最大等待时间,单位ms.  
                    initialSize="10"  初始化连接  
                    maxIdle="60"   最大空闲连接  
                    minIdle="10"   最小空闲连接  
                    maxActive="80" 最大活动连接  
                       
                    validationQuery = "SELECT 1 FROM DUAL"  验证使用的SQL语句  
                    testWhileIdle = "true"      指明连接是否被空闲连接回收器(如果有)进行检验.如果检测失败,则连接将被从池中去除.  
                    testOnBorrow = "false"   借出连接时不要测试,否则很影响性能  
                    timeBetweenEvictionRunsMillis = "30000"  每30秒运行一次空闲连接回收器  
                    minEvictableIdleTimeMillis = "1800000"  池中的连接空闲30分钟后被回收  
                    numTestsPerEvictionRun="10" 在每次空闲连接回收器线程(如果有)运行时检查的连接数量  
                          
                    removeAbandoned="true"  连接泄漏回收参数,当可用连接数少于3个时才执行  
                    removeAbandonedTimeout="180"  连接泄漏回收参数,180秒,泄露的连接可以被删除的超时值  
             logAbandoned="true" 连接泄漏回收日志记录                  

                /> 
            </Context>
      </Host>
View Code

 

2.weblogic环境

在eclipse的项目中配置数据dataSource如下:

<!-- 数据源定义一 -->
<bean id="myDataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiName">
    <value>jdbc/platformproxy</value> <!-- 不需要带java: -->
    </property>
</bean>

 

二. jdbc

直接在eclipse的项目中配置数据dataSource如下:

<bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource">
        <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
        <property name="url" value="jdbc:oracle:thin:@192.168.1.8:1521:orcl" />
        <property name="username" value="myusername" />
        <property name="password" value="mypassword" />
    </bean> 

 如果连接的数据源为双数据源时如下:

<bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource">
        <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
        <property name="url" value="jdbc:oracle:thin:@(DESCRIPTION =(ADDRESS_LIST=(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.8)(PORT = 1521))      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.8)(PORT = 1521)))(LOAD_BALANCE = yes)(CONNECT_DATA =      (SERVER = DEDICATED)      (SERVICE_NAME = zswx)        (FAILOVER_MODE =        (TYPE = SELECT)        (METHOD = BASIC)        (RETRIES = 180)        (DELAY = 5)      )    )  )" />
        <property name="username" value="U_IPCIS_POLICY_PLATFORM" />
        <property name="password" value="11" />
    </bean> 

注意url的value,从别的地方复制过去只要是一行(不要换行)即可,不然可能会报错

posted @ 2015-09-02 14:19  苦涩泪滴  阅读(762)  评论(0编辑  收藏  举报