2016-08-29 21 views
1

私はjava 7とtomcat 7を使用しています。jndiにtomcat/conf/server.xmlを使用するjUnitで私のアプリケーションのテストを少ししか書いていません。ここにmavenの推奨フォルダ構造があります。junitのテストケースでtomcat server.xmlを読み取る

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

私のサンプルのserver.xmlは

<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="" /> 

私はJUnitのテストケースを実行する前に、IntialContextにこのserver.xmlのをロードしたい、このようになります。これを達成する方法は?

答えて

0

Give TomcatJNDI a try. Tomcatの設定ファイルを供給する場合には、すぐにそれらが検索されるように、これらのファイル内で宣言されているすべてのJNDIベースのオブジェクトをお届けします。

DataSource ds = (DataSource) InitialContext.doLookup("java:comp/env/path/to/datasource") 

More about TomcatJNDI can be found here.

:あなたが使用されているとして、これを達成するためのコードは、たとえば次に

TomcatJNDI tomcatJNDI = new TomcatJNDI(); 
tomcatJNDI.processServerXml(serverXmlFile) 
tomcatJNDI.processContextXml(contextXmlFile); 
tomcatJNDI.start(); 

あなたがオブジェクトを検索することができますためです

関連する問題