Search code examples
javatomcatjunitjndiserver.xml

Reading tomcat server.xml in junit test case


I am using java 7, and tomcat 7. I am writing few tests for my application in jUnit which uses tomcat/conf/server.xml for jndi. Here is the maven suggest folder structure.

src
|___test
    |___java
    |       |___Testcase.java
    |___resources
            |___conf
                   |___server.xml

My sample server.xml would look like this,

<Resource name="jdbc/junit_db"
        type="javax.sql.DataSource"
        factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
        driverClassName="com.mysql.jdbc.Driver"
        url="jdbc:mysql://localhost:3306/junit_db?zeroDateTimeBehavior=round&amp;autoReconnect=true&amp;dumpQueriesOnException=true"
        username="root"
        password="password"
        maxIdle="0"
        minIdle="0"
        initialSize="1"
        maxWait="5000"
        maxActive="50"
        loginTimeout="1000"
        minEvictableIdleTimeMillis="2000"
        timeBetweenEvictionRunsMillis="5000"
        validationQuery="SELECT 1"
        testOnBorrow="true"
        testOnReturn="true"
        testWhileIdle="false"
        logAbandoned="true"
        removeAbandoned="true"
        poolPreparedStatements="true"
        maxOpenPreparedStatements="10000"
        accessToUnderlyingConnectionAllowed="false"
        defaultAutoCommit="false"
        defaultReadOnly="false"
        defaultTransactionIsolation="4"/>

<Resource name="jdbc/junit_hive_db" 
            type="javax.sql.DataSource" 
            factory="com.office.hive.HiveDataSourceFactory" 
            driverClassName="org.apache.hive.jdbc.HiveDriver" 
            url="jdbc:hive2://localhost:10000/default?zeroDateTimeBehavior=round" 
            username="" 
            password="" />

I want to load this server.xml into the IntialContext before running jUnit test cases. How to achieve this?


Solution

  • Followed this link, it has solution for loading jndi into initialcontext manually.

    http://www.alexecollins.com/tomcat-context-junit-rule/