2014年2月12日 #
Tomcat7.0 和 websphere 7.0 服務器中Spring使用JNDI dataSource 的配置
一、Tomcat 服務器中Spring 使用JNDI數據源及配置
1. 在TOMCAT_HOME目錄下conf中的context.xml 文件中 <Context>標簽中加入
<Resource name="jndids"
auth="Container"
type="javax.sql.DataSource"
password="password"
username="developer"
driverClassName="oracle.jdbc.OracleDriver"
url="jdbc:oracle:thin:@17.0.0.1:1521:orcl"
maxActive="100"
maxIdle="2"
maxWait="5000"
/>
2. 在cmis工程的web.xml中加入
<resource-ref>
<description>OracleDBConnection Pool</description> <res-ref-name>jndids</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref>
3. 在Spring的 applicationContext.xml 文件中配置dataSource
<bean id="dataSource"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName"> <value>java:comp/env/jndids</value> </property>
</bean>
二、Websphere服務器中Spring 使用JNDI數據源及配置
1. 創建JDBC提供者:
進入WebSphere管理控制臺后,點擊“資源”?“JDBC”?“JDBC提供者”如下圖,點擊“新建”按鈕,準備創建數據源。
a. 新建JDBC
b. 指定驅動driver (默認的路徑可能不行,我改成了絕對路徑)
2. 創建數據源
a. 進入數據源配置界面,點擊“新建”按鈕
b. 選擇剛才創建的
JDBC
c. 輸入URL
d. 設置安全性別名
如果已經創建了“組件管理的認證別名”和“容器管理的認證別名”,直接選擇;如果沒有創建點擊“全局 J2C 認證別名”,如下圖所示
在“全局J2C認證別名”界面點擊“新建”按鈕,進入“J2C認證數據建立”界面,分別輸入別名(用戶自定義)、用戶標識、密碼,然后點擊“確定”按鈕,完成J2C認證數據的創建,如下圖所示:
()
回到“設置安全性別名”,選擇“組件管理的認證別名”和“容器管理的認證別名”
e. 點擊“下一步”按鈕,進入“創建數據源摘要”界面,檢查創建時錄入的信息是
否正確,如果正確點擊“完成”按鈕,完成“數據源”建立,如圖所示:
f. 點擊保存到主配置,進行測試鏈接,測試連接是否成功,選擇創建的數據源點擊
“測試連接”按鈕,如果一切成功則出現如下圖所示界面,
否則請返回以上步驟,
認證檢查配置的屬性是否正確。
3. 在Spring的 applicationContext.xml 文件中配置dataSource
<bean id="dataSource"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName"> <value>jndids</value> </property>
</bean>
set collation CHINESE_CHINA
結果還是不盡如人意,雖然絕大多數記錄排序是正確的(按拼音排序),但還是有少量比較生僻的字給單獨排在了最后。試想如果某個領導的名字按拼音排序本來要排在前面的,結果因為生僻字給排到了最后,被領導發現了會不會不高興給你小鞋穿呢?要盡善盡美怎么辦呢?查了一下H2的文檔,講到設置collation的時候可以調用 ICU4J(ICU for java)來替代使用內置的collation機制。(不知道ICU,你out了吧,要不要google一下先?!)。 到ICU網站下載了icu4j.jar,將其加入到 CLASSPATH中,重啟H2的服務。再次創建數據庫,創建數據庫后立即在沒有創建表的情況下輸入下列命令設置collation:
set collation ICU4J_CHINESE_CHINA
再次說明,如果已經創建了表,此命令是無效的喔。將collation設置為ICU4J_CHINESE_CHINA 后,中文排序就OK了!