• 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,从别的地方复制过去只要是一行(不要换行)即可,不然可能会报错

  • 相关阅读:
    [git 学习篇]自己在github创建一个远程服务器创库
    [git 学习篇]远程创库
    [git 学习篇]删除文件
    [git 学习篇] git checkout 撤销修改
    [git 学习篇]git管理的是修改,并非文件
    log4net面面观之Repository
    log4net面面观之工作原理
    asp.net获取当前页面文件名,参数,域名等方法。统一session验证和权限验证的方法
    C#使用Log4Net记录日志
    SharePoint 2010中的客户端AJAX应用——ASP.NET AJAX模板
  • 原文地址:https://www.cnblogs.com/whatlonelytear/p/4778461.html
Copyright © 2020-2023  润新知