paulwong

          MyEclipse+WebSphere 通過(guò) JNDI 連接 Sybase 簡(jiǎn)介

          ?????? 很久不來(lái)這里寫(xiě)東西了,一是工作忙,還有就是我是個(gè)初學(xué)者也寫(xiě)不出什么東西。這幾天因工作需要學(xué)習(xí)了一下 WebSphere5.1, 在網(wǎng)上找了些資料終于了解了如何通過(guò) JNDI 連接 Sybase 數(shù)據(jù)庫(kù)。貼上來(lái)一個(gè)是怕自己以后忘了,另外就是希望能幫助像我一樣苦苦探索的初學(xué)者。

          ?

          該文參考了 :

          1. ?IBM WebSphere Application Server V5.1 System Management and Configuration - WebSphere Handbook Series

          2.? moyunhe ? http://www.matrix.org.cn 發(fā)表的 WebSphere 中流行數(shù)據(jù)庫(kù)連接池的配置 (Oracle SQL Server Sybase 、 MySQL), 該文地址 : ???? http://www.matrix.org.cn/thread.shtml?topicId=30665&forumId=40

          3.? MyEclipse 網(wǎng)站的一篇文檔,該文地址 : http://www.myeclipseide.com/Articles/WebSphere5.1LogConfiguration/WAS5.1LogConfiguration.html

          ?

          軟件環(huán)境 :eclipse V3.1.1, MyEclipse V4.1.1 Build id: 20060309-4.1.1-GA, Sybase ASE 12.5 字符集 : iso_1, WebShpere 5.1 中文版

          ?

          A. ??????? WebSphere5.1 log 重定向至 MyEclipse 控制臺(tái) ( 摘自 MyEclipse 幫助 ”Configuring WebSphere 5.1 Logging for MyEclipse”. 所以 WebSphere 是英文的 )

          1.?? 打開(kāi)指定 Server Log 設(shè)置


          2. ?? 選擇 JVM Logs


          3.?? 設(shè)置 Output Error Logs 到控制臺(tái) (Console), 之后點(diǎn)擊確認(rèn) (OK) 按鈕


          4.?? 點(diǎn)擊 Save


          5. ?? 點(diǎn)擊 Save 按鈕


          B. ??????? MyEclipse 中設(shè)置 WebSphere5.1 屬性

          1. ?? 按下圖請(qǐng)根據(jù)自己的具體環(huán)境設(shè)置


          2. ?? Jdk 設(shè)置必須指定 WebSphere 自帶 jdk


          3. ?? 如果安裝了 MQ 需要以下設(shè)置,否則會(huì)在 MyEclipse 啟動(dòng)時(shí)由于找不到 bipmainw110.dll 而導(dǎo)致 MQ 啟動(dòng)失敗


          4.?? 這些設(shè)置好之后就可以通過(guò)下圖所示來(lái)啟動(dòng) WebSphere, 啟動(dòng)日志應(yīng)該顯示在 eclipse 的控制臺(tái)中


          C. ??????? 接下來(lái)設(shè)置 Sybase JDBC JNDI

          1. ?? 點(diǎn)擊 環(huán)境 -> 管理 WebSphere 變量 “( 下邊 WebSphere 是自己公司的,所以是中文的 ) ,然后點(diǎn)擊 新建 按鈕


          2.?? 點(diǎn)擊右邊的 ” SYBASE_JDBC_DRIVER_PATH?” ( 通常 Sybase 數(shù)據(jù)庫(kù)的 JDBC 連接程序?yàn)?/span> jconn2.jar ,根據(jù) Sybase 版本不同可能存放于 \sybase\jConnect-5_5\classes\ 或是存放于目錄 \sybase\Sybase Central 3.2\java\ , 將具體的 jconn2.jar 所在路徑指定給他們即可。 ) ,點(diǎn)擊 確認(rèn) 跳轉(zhuǎn)頁(yè)面后點(diǎn)擊鏈接 保存 ,再次跳轉(zhuǎn)頁(yè)面后點(diǎn)擊按鈕 保存 ”( 注意 : 不是上邊的鏈接,是下邊的 保存 按鈕,以后保存步驟簡(jiǎn)寫(xiě)為保存 )

          ?


          3. ?? 之后點(diǎn)擊 環(huán)境 -> 更新 Web 服務(wù)器插件 ,再點(diǎn)擊 確定 ”( 當(dāng)服務(wù)器、群集、 HTTP 傳輸或虛擬主機(jī)別名配置更改時(shí),必須更新 Web 服務(wù)器插件,這個(gè)后面也不再多說(shuō),反正服務(wù)器修改東西后沒(méi)效果在這里更新一下,還不行重起 web 服務(wù),再不行重起機(jī)器,最后還不行肯定是某個(gè)地方配置錯(cuò)了 ,google 上查查資料,或者看看 ” WebSphere Application Server V5.1 System Management & Configuration” 這本書(shū)。這本書(shū)英文版可以去 emule 上下載下來(lái) , 書(shū)店里有賣(mài)中文的,網(wǎng)上似乎沒(méi)有,我是在書(shū)店里發(fā)現(xiàn)有這本書(shū)才去 emule 下的 ) 。

          ?



          4. ?? 點(diǎn)擊 資源 -> JDBC 提供程序 ,在打開(kāi)的頁(yè)面中點(diǎn)擊 新建 ”( 圖片中的 ”Sybase JDBC Driver” 是我已經(jīng)建好的,不用理會(huì) )

          ?



          5. ?? 選擇 ”Sybase JDBC Driver” ,確認(rèn)后頁(yè)面跳轉(zhuǎn)。

          ?



          6.?? 可以在這里更改名稱(chēng)、描述,其它默認(rèn),然后再確定,最后保存。這時(shí) Sybase JDBC 已設(shè)置好。



          ?

          7.?? 點(diǎn)擊剛才建好的 Sybase JDBC 名稱(chēng)

          ?



          8. ?? 點(diǎn)擊 數(shù)據(jù)源

          c8.gif

          9.?? 點(diǎn)擊 新建 ”( 下邊圖片中的 hq 是我已建好的不必理會(huì) , 您的頁(yè)面應(yīng)該是什么都沒(méi)有,要有東西說(shuō)明見(jiàn)到鬼了 )

          ?



          10. ?? 輸入 名稱(chēng) 、 ”JNDI 后點(diǎn)擊 應(yīng)用

          ?



          11.?? 點(diǎn)擊下方的 定制屬性 ,在打開(kāi)的頁(yè)面中按下圖設(shè)置 JDBC 鏈接屬性,沒(méi)有的需要新建該屬性。 連接池 需要根據(jù)自己實(shí)際情況設(shè)置。屬性和連接池中的各項(xiàng)可以參考 ” WebSphere Application Server V5.1 System Management & Configuration” 這本書(shū)

          ?



          12. ?? 保存后更新插件,之后需要重起 WebSphere 才生效。之后我們可以測(cè)試剛才的設(shè)置是否成功,測(cè)試成功表示 JNDI 已正確設(shè)置,否則可能數(shù)據(jù)庫(kù)沒(méi)有啟動(dòng)或者有些地方?jīng)]有設(shè)置正確。

          ?



          D. ?????? MyEclipse 中測(cè)試剛才設(shè)置的 JNDI 。

          1. ?? 新建 ” Enterprise Application Project ”

          ?



          2.?? 下一步后敲入項(xiàng)目名稱(chēng),選擇 ”J2EE 1.3”( 必須選擇該項(xiàng) , 否則生成的 application.xml web.xml 格式是 J2EE1.4 的, WebSphere5.1 并不支持該格式,發(fā)布應(yīng)用時(shí)會(huì)出錯(cuò)導(dǎo)致無(wú)法發(fā)布 ) 。 ”Define Ejb Project Modules” 就不用選了,我們沒(méi)用 ejb

          ?



          3. ?? “ Create Web Project Module ” 上打勾

          ?



          4.?? 點(diǎn)擊完成

          ?



          5. ?? test.pool 包中建類(lèi) TestPool ,在 WebRoot 下建 jsp: testjndi.jsp, 如下圖 :

          ?



          6.?? 代碼

          test 表結(jié)構(gòu) :

          CREATE ? TABLE ?dbo.test?
          (
          ????name?
          varchar ( 60 )? NULL
          )

          TestPool 類(lèi)內(nèi)容 :



          ?
          /*該代碼借用了 moyunhe文章中的TestPool類(lèi),詳細(xì)內(nèi)容請(qǐng)見(jiàn)該文參考*/

          /*
          ?*?創(chuàng)建日期?2005-11-5
          ?*
          ?*?更改所生成文件模板為
          ?*?窗口?>?首選項(xiàng)?>?Java?>?代碼生成?>?代碼和注釋
          ?
          */
          package ?test.pool;

          import ?java.sql.Connection;
          import ?java.sql.ResultSet;
          import ?java.sql.SQLException;
          import ?java.sql.Statement;

          import ?javax.naming.Context;
          import ?javax.naming.InitialContext;
          import ?javax.naming.NamingException;
          import ?javax.sql.DataSource;

          /**
          ?*?
          @author ?moyunhe
          ?*
          ?*?更改所生成類(lèi)型注釋的模板為
          ?*?窗口?>?首選項(xiàng)?>?Java?>?代碼生成?>?代碼和注釋
          ?
          */
          public ? class ?TestPool?{
          ????
          ????
          private ? static ?Connection?getConnection(String?strConnPoolJndi)? throws ?NamingException,?SQLException??{
          ????????Context?ctx?
          = ? null ;
          ????????ctx?
          = ? new ?InitialContext();
          ????????DataSource?ds?
          = ?(DataSource)ctx.lookup(strConnPoolJndi);
          ????????Connection?conn?
          = ?ds.getConnection();
          ????????
          ????????
          return ?conn;
          ????????
          ????}
          ????
          ????
          public ? static ?String?getDBData(String?strConnPoolJndi,?String?sql)?{
          ????????String?strReturn
          = "" ;
          ????????Connection?conn?
          = ? null ;
          ????????Statement?st?
          = ? null ;
          ????????ResultSet?rs?
          = ? null ;

          ????????
          try ?{
          ????????????conn?
          = ?getConnection(strConnPoolJndi);
          ????????????st?
          = ?conn.createStatement();
          ????????????st.executeUpdate(
          " delete?test " );
          ????????????st.executeUpdate(
          " insert?test(name)?values(' " + sql + " ') " );
          ????????????rs?
          = ?st.executeQuery(? " select?name?from?test " ?);
          ????????????
          ????????????
          if ?(rs.next())?{
          ????????????????strReturn?
          = ?rs.getString( 1 );
          ????????????}

          ????????}
          ????????
          catch ?(Exception?e)?{
          ????????????e.printStackTrace();
          ????????????strReturn?
          = ?e.getMessage();
          ????????}
          ????????
          finally ?{
          ????????????
          try ?{
          ????????????????
          if ?(st? != ? null )?{
          ????????????????????st.close();
          ????????????????????st?
          = ? null ;
          ????????????????}
          ????????????????
          if ?(rs? != ? null ?)?{
          ????????????????????rs.close();
          ????????????????????rs?
          = ? null ;
          ????????????????}
          ????????????????
          if ?(conn? != ? null )?{
          ????????????????????conn.close();
          ????????????????????conn?
          = ? null ;
          ????????????????}
          ????????????}
          ????????????
          catch ?(SQLException?e)?{
          ????????????????e.printStackTrace();
          ????????????}
          ????????}
          ????????
          ????????
          return ?strReturn;
          ????}

          }

          testjndi.jsp 文件內(nèi)容 :


          <% @?page?language = " java " ?contentType = " text/html;charset=utf-8 " ?pageEncoding = " utf-8 " %>
          <% @page?import = " java.util.* " %>

          <! DOCTYPE?HTML?PUBLIC?"-//W3C//DTD?HTML?4.01?Transitional//EN" >
          < html >
          ??
          < head >
          ????
          < title > My?JSP?'MyJsp.jsp'?starting?page </ title >
          ??
          </ head >
          ??
          ??
          < body >
          ????世界杯.?
          < br >
          ????
          <% out.println( " SYBASE_JNDI: " ? + ?test.pool.TestPool.getDBData( " jdbc/hq " , " 2006年德意志世界杯 " )); %>
          ??
          </ body >
          </ html >

          7.?? 游覽器運(yùn)行結(jié)果



          ?

          posted on 2006-07-24 17:12 paulwong 閱讀(2705) 評(píng)論(1)  編輯  收藏 所屬分類(lèi): Websphere

          Feedback

          # re: MyEclipse+WebSphere 通過(guò) JNDI 連接 Sybase 簡(jiǎn)介 2006-08-08 11:25 疑問(wèn)

          對(duì)webSphere的一些概念不太熟悉,比如單元、節(jié)點(diǎn)、服務(wù)、概要以及它們的關(guān)系?可否講講?  回復(fù)  更多評(píng)論   


          主站蜘蛛池模板: 高安市| 吐鲁番市| 峨边| 肥乡县| 望江县| 白玉县| 安远县| 拜城县| 霍山县| 彭山县| 鹿邑县| 平凉市| 建湖县| 大同县| 安图县| 许昌市| 云阳县| 揭东县| 蓬安县| 大安市| 桐庐县| 壶关县| 江城| 中卫市| 叙永县| 邻水| 海阳市| 南京市| 崇礼县| 娄底市| 金门县| 全南县| 华宁县| 禹州市| 青河县| 新平| 九台市| 石首市| 青神县| 新巴尔虎左旗| 南木林县|