2)解壓縮包,並將如下幾個jar包拷貝tomcat6的lib下:btm-2.1.1.jar,btm-tomcat55-lifecycle-2.1.1.jar,geronimo-jta_1.1_spec-1.1.1.jar,slf4j-api-1.6.1.jar,slf4j-jdk14-1.6.1.jar。
3)拷貝對應數據的jdbc驅動包到tomcat6的lib下,則這邊採用oracle11g作爲後端測試的數據庫,所以拷貝oracle jdk6.0 jdbc包ojdbc6.jar到lib下。
4)進入tomcat6的bin目錄下,編輯startup.bat,在
set "EXECUTABLE=%CATALINA_HOME%\bin\catalina.bat"
下增加一行
set "CATALINA_OPTS=-Dbtm.root=%CATALINA_HOME% -Dbitronix.tm.configuration=%CATALINA_HOME%\conf\btm-config.properties"
後,進行保存。5)進入tomcat6的conf目錄,創建文件:btm-config.properties並填入內容:
bitronix.tm.serverId=spring-btm
bitronix.tm.journal.disk.logPart1Filename=${btm.root}/work/btm1.tlog
bitronix.tm.journal.disk.logPart2Filename=${btm.root}/work/btm2.tlog
bitronix.tm.resource.configuration=${btm.root}/conf/resources.properties
;在conf目錄下創建定義數據源的properties文件:resources.properties。在其中寫入:
resource.ds1.className=oracle.jdbc.xa.client.OracleXADataSource
resource.ds1.uniqueName=jdbc/oracle
resource.ds1.minPoolSize=0
resource.ds1.maxPoolSize=5
resource.ds1.allowLocalTransactions=true
#resource.ds1.driverProperties.driverClassName=oracle.jdbc.driver.OracleDriver
resource.ds1.driverProperties.URL=jdbc:oracle:thin:@localhost:1521:orcl
resource.ds1.driverProperties.user=scott
resource.ds1.driverProperties.password=Pass1234
。綁定的JNDI名稱爲:java:comp/env/jdbc/oracle。6)進入tomcat6的conf文件,編輯server.xml,在
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
下增加一行:
<Listener className="bitronix.tm.integration.tomcat55.BTMLifecycleListener" />
用於監控BTM的生命週期(在tomcat啓動或者關閉時);在同一目錄下,編輯context.xml文件,在<WatchedResource>WEB-INF/web.xml</WatchedResource>
下增加一行:
<Transaction factory="bitronix.tm.BitronixUserTransactionObjectFactory" />
配置UserTransaction,對應的jndi名稱爲:java:comp/UserTransaction。在增加一行對上面配置的數據源的引用:<Resource name="jdbc/oracle" auth="Container" type="javax.sql.DataSource"
factory="bitronix.tm.resource.ResourceObjectFactory" uniqueName="jdbc/oracle" />
在配置BTM的時候,發現配置了BTM管理的的數據源後,發現在Eclipse中通過tomcat的plugin來啓動tomcat時,找不到配置的數據源,但在增加如上一行配置後,就能夠找到了。
最後,你就可以在項目中使用如上配置的數據源及BTM的事務管理器了。