Tomcat中配置JNDI數據源

準備工作:

Tomcat版本:tomcat6.0以上

下例中均使用MySQL數據庫

將對應數據源的jar包和MySQL的驅動包拷貝至tomcat的lib文件夾下

一、全局數據源

1步驟一:配置

在tomcat下的conf/server.xml的GlobalNamingResources節點標簽中增加如下配置:

A、 最基本的DataSource配置:

<Resource name="jndi "?auth="Container"
type="javax.sql.DataSource"
username="root"?
password="root"
driverClassName="org.gjt.mm.mysql.Driver"?
url="jdbc:mysql://localhost/test"?
maxActive="100"?
maxIdle="30"?
maxWait="10000"/>

B、 DBCP連接池配置:

<Resource name="jndi "?auth="Container"
type="javax.sql.DataSource"
username="root"?
password="root"
driverClassName="org.gjt.mm.mysql.Driver"?
url="jdbc:mysql://localhost/test"?

Factory=“org.apache.commons.dbcp.BasicDataSourceFactory”
maxActive="100"?
maxIdle="30"?
maxWait="10000"/>

C、C3P0連接池配置:

<Resource name="jndi"

???type="com.mchange.v2.c3p0.ComboPooledDataSource"??

???factory="org.apache.naming.factory.BeanFactory"?

???jdbcUrl="jdbc:mysql://localhost:3306/test"driverClass="com.mysql.jdbc.Driver"?

??? ????user="root"password="root" />?

D、Tomcat7 自帶的額數據庫連接池

<Resource name="jndi "?auth="Container"
type="javax.sql.DataSource"
username="root"?
password="root"
driverClassName="org.gjt.mm.mysql.Driver"?
url="jdbc:mysql://localhost/test"?

Factory=” org.apache.tomcat.jdbc.pool.DataSourceFactory
maxActive="100"?
maxIdle="30"?
maxWait="10000"/>

?

這樣,數據源就配好了,但是如果你想要在你的項目中來使用,那么就需要在你項目的WebRoot下的META—INF下新建一個名為context.xml的文件夾,加入下面的配置(當然也可以直接配置tomcat下的conf/context.xml中,推薦放在META-INF中,這樣方便移植):

<Context>
<ResourceLink ?global="jndi"

name="jndiA"

type="javax.sql.DataSource"/>
</Context>

說明:jndi是全局的JNDI名稱,jndiA是你的應用中使用的JNDI名稱,明顯上述配置的作用就是把全局JNDI數據源與應用中使用的數據源關聯起來!

2.步驟2:使用JNDI數據源

A.代碼中使用:

? Context ctx = new InitialContext() ;
??DataSource ds = (DataSource)ctx.lookup("java:comp/env/jndiA ");
??Connection conn = ds.getConnection() ;

B.如果使用spring,那么在spring的配置文件中按如下方式配置DataSource即可:

<beanid="dataSource"

??? class="org.springframework.jndi.JndiObjectFactoryBean">

??? <property name="jndiName"value="java:comp/env/jndiA " />

</bean>

二、配置局部數據源:

局部數據源最好配置在項目WebRoot下的META-INF中的context.xml文件中的context節點中,配置的語法同全局數據源的配置方式,這樣配的好處是可以直接在項目當中修改配置信息,而不用單獨去修改tomcat的配置文件。

需要注意的是此時在項目中使用的JNDI name就是你配置信息中的name,這一點與全局稍有區別。

注:c3p0數據源配在這里的context中我沒有測試成功,啟動tomcat的時候,日志打印到no spring webapplicationinitializer types detected on classpath 就會一直卡在這里,最后超過tomcat的啟動時間然后報錯!對于這個問題,請教各位知道的大神!

?

轉載于:https://www.cnblogs.com/elgin-seth/p/5293784.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/374874.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/374874.shtml
英文地址,請注明出處:http://en.pswp.cn/news/374874.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

練習3-8 查詢水果價格 (15 分)

練習3-8 查詢水果價格 (15 分) 給定四種水果&#xff0c;分別是蘋果&#xff08;apple&#xff09;、梨&#xff08;pear&#xff09;、桔子&#xff08;orange&#xff09;、葡萄&#xff08;grape&#xff09;&#xff0c;單價分別對應為3.00元/公斤、2.50元/公斤、4.10元/公…

JavaFX 2.0 beta示例應用程序和思考

我有一段時間回過頭來玩JavaFX&#xff0c;并且在使用該語言方面有好有壞的經驗。 隨著JavaFX 2.0 beta的發布&#xff0c;我想嘗試一下。 在這里&#xff0c;我開發了一個簡單的地址解析應用程序&#xff0c;該應用程序將使用Google地址編碼API來獲取地址并提供該位置的緯度-經…

$Android自定義控件在不同狀態下的屬性

在寫代碼的時候&#xff0c;有時候需要控件在不同狀態下顯示不同的外觀&#xff0c;比如在按鈕按下的時候要變顏色&#xff0c;EditText獲取焦點時候邊框要變顏色等。那么下面就來梳理一下這些是怎么實現的。 &#xff08;一&#xff09;按鈕按下時候變顏色 1、在項目的drawabl…

解析DBR操作系統引導記錄數據

理解文件系統。你必須要熟悉DBR&#xff0c;下面我們就來看看文件系統解析DBR數據。 Dos Boot Record(DBR)操作系統引導記錄是由操作系統的格式化程序建立的。在文件系統驅動操作不論什么一個磁盤卷時&#xff0c;這一部分的信息將被讀取并作為文件系統在這個磁盤卷上的參數被使…

簡單冒泡排序

將5個數字按從小到大排序。 #include <stdio.h> #include <stdlib.h> #include <math.h> int main() {int x[5] {0},temp 0;for(int i 0;i<5;i){scanf("%d",&x[i]);}//冒泡排序&#xff08;升序&#xff09;for(int j 0;j<4;j)//n個…

YouTube Java API入門

在本教程中&#xff0c;我將介紹Google的YouTube API &#xff0c;該API可讓您使用YouTube的功能來啟用應用程序。 YouTube是“殺手級”互聯網應用程序之一&#xff0c;其流量占互聯網總流量的很大一部分。 在開始之前&#xff0c;請確保您已閱讀《 API概述指南》 。 我們將主…

mysql在mac上的坑

默認端口3306&#xff1f; 正確答案&#xff1a;3307 轉載于:https://www.cnblogs.com/dudream/p/5375551.html

ServletContext圖解

servlet之間共享數據資源&#xff01; 轉載于:https://www.cnblogs.com/felixzh/p/4615902.html

C語言怎么輸出百分號%

規律&#xff1a;printf函數中&#xff0c;當出現多個%時&#xff0c;由左至右&#xff0c;每兩個%結合輸出一個% #include <stdio.h> #include <stdlib.h> #include <math.h> int main() {int c 52;printf("% \n %% \n %%% \n %%%% \n %%%%% \n %%%%…

入侵Jasper以獲取JSP頁面的對象模型

為了對我的JSP進行一些檢查和統計分析&#xff0c;我需要一個包含在其中的元素的類似于DOM的層次模型。 但是&#xff0c;解析JSP頁面并不是一件容易的事&#xff0c;最好留給它一個出色的工具-Tomcat&#xff0c;Jetty&#xff0c;GlassFish以及其他所有工具都可以使用Jasper …

Linux自動化安裝cobbler

1介紹 1.1 PXE PXE技術與RPL技術不同之處為RPL是靜態路由&#xff0c;PXE是動態路由。RPL是根據網卡上的ID號加上其他記錄組成的一個Frame&#xff08;幀&#xff09;向服務器發出請求。而服務器中已有這個ID數據&#xff0c;匹配成功則進行遠程啟動。PXE則是根據服務器端收到的…

iOS9適配系列教程

https://github.com/ChenYilong/iOS9AdaptationTips 轉載于:https://www.cnblogs.com/zsw-1993/p/4879118.html

C語言形參

形參和實參區別 形參出現在函數定義中&#xff0c;在整個函數體內都可以使用&#xff0c;離開該函數則不能使用。實參出現在主調函數中&#xff0c;進入被調函數后&#xff0c;實參變量也不能使用。 形參和實參的功能是作數據傳送。發生函數調用時&#xff0c;主調函數把實參…

避免延遲的JPA集合

Hibernate&#xff08;實際上是JPA&#xff09;具有集合映射&#xff1a; OneToMany&#xff0c; ManyToMany&#xff0c; ElementCollection。 所有這些默認情況下都是惰性的。 這意味著集合是List或Set接口的特定實現&#xff0c;其中包含對持久會話的引用&#xff0c;并且只…

2016年,我的和自己談談

2016年過去三分之一了&#xff0c;現在談規劃晚點但總比沒想法強。想了半天還是從這個方面著手吧&#xff1a; 一.升級改造自己的辦公學習環境&#xff1a; 給自己的電腦加內存&#xff0c;加SSD&#xff0c;再添置一個顯示器&#xff0c;換上心儀已久的cherry青軸鍵盤&#xf…

C語言的四舍五入實現

習題3-2 高速公路超速處罰 (15 分) 按照規定&#xff0c;在高速公路上行使的機動車&#xff0c;達到或超出本車道限速的10%則處200元罰款&#xff1b;若達到或超出50%&#xff0c;就要吊銷駕駛證。請編寫程序根據車速和限速自動判別對該機動車的處理。 輸入格式: 輸入在一行中…

ACTGame項目

項目地址&#xff1a;https://github.com/alonecat06/ACTGame游戲地址&#xff1a;http://pan.baidu.com/s/1hqD3IYw 項目是一個自制單機動作游戲demo&#xff0c;方向是手游&#xff0c;使用Unity5&#xff0c;5月中開工至今。 做這個項目&#xff0c;是為加深自己對Unity的理…

Xuggler教程:幀捕獲和視頻創建

注意&#xff1a;這是我們的“ Xuggler開發教程 ”系列的一部分。 到目前為止&#xff0c;在我們的Xuggler教程系列中&#xff0c;我們已經對視頻處理的Xuggler進行了介紹&#xff0c;并討論了轉碼和媒體修改 。 在本教程中&#xff0c;我們將看到如何解碼視頻和捕獲幀&#xf…

面向對象-原型對象

創建對象 Js中可以用構造函數模式創建對象&#xff0c;如&#xff1a; function Person(name, age, job) {this.name name;this.age age;this.job job;this.sayName function () {alert(this.name);}}var person1 new Person("Nicholas", 29, "aa");v…

索引類型

1.B樹索引 在Oracle中是通用索引&#xff0c;是創建索引時的默認索引。B樹索引可以是單列索引&#xff0c;也可以是組合/復合索引。B樹索引最多可以包括22列。 2.位圖索引 位圖索引時決策支持系統&#xff08;DSS&#xff09;和數據倉庫的理想選擇&#xff0c;它們不應該用于事…