zoukankan      html  css  js  c++  java
  • tomcat中配置servlet.xml的JNDI或JDBC连接数据库【原】

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

    一. JNDI

    1. tomcat环境

    找到X:xxx......apache-tomcat-6.0.39confserver.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:applicationmyserverWebContent" 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,从别的地方复制过去只要是一行(不要换行)即可,不然可能会报错

  • 相关阅读:
    【C++】资源管理
    【Shell脚本】逐行处理文本文件
    【算法题】rand5()产生rand7()
    【Shell脚本】字符串处理
    Apple iOS产品硬件参数. 不及格的程序员
    与iPhone的差距! 不及格的程序员
    iPhone游戏 Mr.Karoshi"过劳死"通关. 不及格的程序员
    XCode V4 发布了, 苹果的却是个变态. 不及格的程序员
    何时readonly 字段不是 readonly 的?结果出呼你想象!!! 不及格的程序员
    object file format unrecognized, invalid, or unsuitable Command 不及格的程序员
  • 原文地址:https://www.cnblogs.com/whatlonelytear/p/4778461.html
Copyright © 2011-2022 走看看