MyEclipse+WebSphere
通過
JNDI
連接
Sybase
簡介
?
??????
很久不來這里寫東西了,一是工作忙,還有就是我是個初學(xué)者也寫不出什么東西。這幾天因工作需要學(xué)習(xí)了一下
WebSphere5.1,
在網(wǎng)上找了些資料終于了解了如何通過
JNDI
連接
Sybase
數(shù)據(jù)庫。貼上來一個是怕自己以后忘了,另外就是希望能幫助像我一樣苦苦探索的初學(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ù)庫連接池的配置
(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
控制臺
(
摘自
MyEclipse
幫助
”Configuring WebSphere 5.1 Logging for MyEclipse”.
所以
WebSphere
是英文的
)
1.??
打開指定
Server
的
Log
設(shè)置
2.
??
選擇
JVM Logs
3.??
設(shè)置
Output
和
Error Logs
到控制臺
(Console),
之后點(diǎn)擊確認(rèn)
(OK)
按鈕
4.??
點(diǎn)擊
Save
5.
??
點(diǎn)擊
Save
按鈕
B.
???????
MyEclipse
中設(shè)置
WebSphere5.1
屬性
1.
??
按下圖請根據(jù)自己的具體環(huán)境設(shè)置
2.
??
Jdk
設(shè)置必須指定
WebSphere
自帶
jdk
3.
??
如果安裝了
MQ
需要以下設(shè)置,否則會在
MyEclipse
啟動時由于找不到
bipmainw110.dll
而導(dǎo)致
MQ
啟動失敗
4.??
這些設(shè)置好之后就可以通過下圖所示來啟動
WebSphere,
啟動日志應(yīng)該顯示在
eclipse
的控制臺中
C.
???????
接下來設(shè)置
Sybase JDBC
和
JNDI
1.
??
點(diǎn)擊
“
環(huán)境
->
管理
WebSphere
變量
“(
下邊
WebSphere
是自己公司的,所以是中文的
)
,然后點(diǎn)擊
”
新建
”
按鈕
2.??
點(diǎn)擊右邊的
” SYBASE_JDBC_DRIVER_PATH?” (
通常
Sybase
數(shù)據(jù)庫的
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)頁面后點(diǎn)擊鏈接
”
保存
”
,再次跳轉(zhuǎn)頁面后點(diǎn)擊按鈕
”
保存
”(
注意
:
不是上邊的鏈接,是下邊的
”
保存
”
按鈕,以后保存步驟簡寫為保存
)
3.
??
之后點(diǎn)擊
“
環(huán)境
->
更新
Web
服務(wù)器插件
“
,再點(diǎn)擊
”
確定
”(
當(dāng)服務(wù)器、群集、
HTTP
傳輸或虛擬主機(jī)別名配置更改時,必須更新
Web
服務(wù)器插件,這個后面也不再多說,反正服務(wù)器修改東西后沒效果在這里更新一下,還不行重起
web
服務(wù),再不行重起機(jī)器,最后還不行肯定是某個地方配置錯了
,google
上查查資料,或者看看
” WebSphere Application Server V5.1 System Management &
Configuration”
這本書。這本書英文版可以去
emule
上下載下來
,
書店里有賣中文的,網(wǎng)上似乎沒有,我是在書店里發(fā)現(xiàn)有這本書才去
emule
下的
)
。
4.
??
點(diǎn)擊
“
資源
-> JDBC
提供程序
“
,在打開的頁面中點(diǎn)擊
”
新建
”(
圖片中的
”Sybase JDBC Driver”
是我已經(jīng)建好的,不用理會
)
5.
??
選擇
”Sybase JDBC Driver”
,確認(rèn)后頁面跳轉(zhuǎn)。
6.??
可以在這里更改名稱、描述,其它默認(rèn),然后再確定,最后保存。這時
Sybase JDBC
已設(shè)置好。
7.??
點(diǎn)擊剛才建好的
Sybase JDBC
名稱
8.
??
點(diǎn)擊
”
數(shù)據(jù)源
”
9.??
點(diǎn)擊
”
新建
”(
下邊圖片中的
hq
是我已建好的不必理會
,
您的頁面應(yīng)該是什么都沒有,要有東西說明見到鬼了
)
10.
??
輸入
”
名稱
”
、
”JNDI
名
”
后點(diǎn)擊
”
應(yīng)用
”
11.??
點(diǎn)擊下方的
”
定制屬性
”
,在打開的頁面中按下圖設(shè)置
JDBC
鏈接屬性,沒有的需要新建該屬性。
”
連接池
”
需要根據(jù)自己實(shí)際情況設(shè)置。屬性和連接池中的各項(xiàng)可以參考
” WebSphere Application Server V5.1 System Management &
Configuration”
這本書
12.
??
保存后更新插件,之后需要重起
WebSphere
才生效。之后我們可以測試剛才的設(shè)置是否成功,測試成功表示
JNDI
已正確設(shè)置,否則可能數(shù)據(jù)庫沒有啟動或者有些地方?jīng)]有設(shè)置正確。
D.
??????
在
MyEclipse
中測試剛才設(shè)置的
JNDI
。
1.
??
新建
” Enterprise Application Project ”
2.??
下一步后敲入項(xiàng)目名稱,選擇
”J2EE 1.3”(
必須選擇該項(xiàng)
,
否則生成的
application.xml
與
web.xml
格式是
J2EE1.4
的,
WebSphere5.1
并不支持該格式,發(fā)布應(yīng)用時會出錯導(dǎo)致無法發(fā)布
)
。
”Define Ejb Project Modules”
就不用選了,我們沒用
ejb
3.
??
在
“ Create Web Project Module ”
上打勾
4.??
點(diǎn)擊完成
5.
??
在
test.pool
包中建類
TestPool
,在
WebRoot
下建
jsp: testjndi.jsp,
如下圖
:
6.??
代碼
test
表結(jié)構(gòu)
:
CREATE
?
TABLE
?dbo.test?
(
????name?
varchar
(
60
)?
NULL
)
TestPool
類內(nèi)容
:
?
/*該代碼借用了
moyunhe文章中的TestPool類,詳細(xì)內(nèi)容請見該文參考*/
/*
?*?創(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
?*
?*?更改所生成類型注釋的模板為
?*?窗口?>?首選項(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é)果
該文如有錯誤望同仁指出,我們共同進(jìn)步!
posted on 2006-06-12 12:57
落花飛雪 閱讀(5358)
評論(0) 編輯 收藏 所屬分類:
J2EE