1。介紹 本文介紹j2ee環(huán)境的配置,,所有涉及的文件都在j2ee安裝目錄下的oncfig目錄,,這些文件都是文本文件,, 你可以有任意的文本編輯器來(lái)編輯它們。 通常情況下,,你沒有改變這些文件的必要,。但是如果你使用的數(shù)據(jù)庫(kù)驅(qū)動(dòng)不是cloudscape的時(shí)候,你需要 遵循本章的內(nèi)容進(jìn)行配置,。 2,。JDBC驅(qū)動(dòng) 默認(rèn)的j2ee安裝后支持cloudscape數(shù)據(jù)庫(kù)(一個(gè)sun公司提供的演示數(shù)據(jù)庫(kù)),如果你的ejb使用的jdbc不 是連接cloudscape數(shù)據(jù)庫(kù),,那么你需要按照下面的知道進(jìn)行配置,。(如果你不能確定本版本的j2ee支持你使用 的jdbc驅(qū)動(dòng),請(qǐng)到 11111 看相關(guān)信息,。) 3,。驅(qū)動(dòng)的位置 你必須把驅(qū)動(dòng)文件(.jar文件)copy到 $J2EE_HOME/lib/system目錄下。并且保證該文件包含在 J2EE_CLASSPATH 的環(huán)境變量中,。 4,。J2EE_CLASSPATH 環(huán)境變量 j2ee server通過(guò)JDBC驅(qū)動(dòng)連接數(shù)據(jù)庫(kù)。通通過(guò)J2EE_CLASSPATH 的環(huán)境變量定位驅(qū)動(dòng)文件(.jar文件)的位 置,。你可以在啟動(dòng)j2ee前在命令行設(shè)置這個(gè)變量,。但是我們推薦你在腳本中設(shè)置J2EE_CLASSPATH 變量。編輯用 戶配置文件在安裝的過(guò)程中是必須的一步,。在unix中,,用戶配置文件是 /bin/userconfig.sh,windows nt中是 bin/userconfig.bat 注意:你應(yīng)該同時(shí)在CLASSPATH環(huán)境變量中去掉驅(qū)動(dòng)文件(.jar文件),。 5,。JDBC 1.0 驅(qū)動(dòng) 為了配置jdbc1.0驅(qū)動(dòng),編輯config/default.properties 文件的jdbc.drivers 和 jdbc.datasources兩個(gè) 屬性值,。再次要注意的是驅(qū)動(dòng)文件必須包含在J2EE_CLASSPATH環(huán)境變量中,。 jdbc.drivers 屬性 jdbc.drivers 屬性的值是有一系列的冒號(hào)分割的jdbc驅(qū)動(dòng)的類名。格式如下: jdbc.drivers= 例如: jdbc.drivers=oracle.jdbc.driver.OracleDriver:testutil.MyDriver jdbc.datasources 屬性值 jdbc.datasources 屬性值由兩部分組成,,一個(gè)是datasource的jndi的名字,,一個(gè)是數(shù)據(jù)庫(kù)的url。典型的 情況是:jndi名字是數(shù)據(jù)庫(kù)的邏輯名字,,rul指定數(shù)據(jù)庫(kù)的實(shí)際位置,。jndi名字和url都是在ejb編碼的過(guò)程中指 定的。rul的格式,,請(qǐng)參照jdbc驅(qū)動(dòng)提供商的文檔,。 jdbc.datasources 的語(yǔ)法如下: jdbc.datasources= |符號(hào)有兩個(gè)作用。第一,它隔開幾個(gè)jndi_datasource,;第二,,它隔開每一個(gè)jndi_datasource中的 jndi_datasource> 和 jndi_datasource元素的語(yǔ)法如下: jdbc/ 由jdbc關(guān)鍵字開頭,jndi_name是在jndi目錄中指定的datasouce名字,。 例如: jdbc.datasources=jdbc/Oracle|jdbc:oracle:thin@rtc:1521:acct|jdbc/MyDB|jdbc:test 6,。支持JTA的JDBC2.0驅(qū)動(dòng) 配置JTA的JDBC2.0的驅(qū)動(dòng),你需要設(shè)置以下屬性的值: jdbc20.datasources xadatasource. xadatasource. xadatasource. xadatasource. xadatasource. 同時(shí)你也必須在J2EE_CLASSPATH 環(huán)境變量中包括jdbc驅(qū)動(dòng)文件,。 jdbc20.datasources 屬性 jdbc20.datasources 屬性的值和jndi名字連接,,用于定位datasouce的位置(它就是lookup方法的參數(shù)) 。 jdbc20.datasources 的語(yǔ)法如下: jdbc20.datasources= |的作用有兩個(gè),,第一,,隔開jndi_datasource 和 jndi_datasource> ,、 jdbc/ jdbc關(guān)鍵字開頭,。jndi_name是datasource名字,,這個(gè)名字指向jndi目錄。 例如: jdbc20.datasources=jdbc/Merant|jdbc/XAMerant|jdbc/Finch|jdbc/XAFinch xadatasource屬性 xadatasource. xadatasource. n代表每一組xadatasource,。第一個(gè)jdbc2.0驅(qū)動(dòng)n為0,,下一個(gè)是1,,2等等。jndi_XA_datasource元素和 jdbc20.datasources 指定的值對(duì)應(yīng),。 The xadatasource. 戶具有管理員的權(quán)限(更多的信息請(qǐng)看 2222 The distributed.transaction.recovery )。 xadatasource. 例如: xadatasource.0.jndiname=jdbc/XAMerant xadatasource.0.classname=com.merant.sequelink.jdbcx.datasource.SequeLinkDataSource xadatasource.0.prop.url=jdbc:sequelink://mypc:5000/[Oracle] 7。事務(wù) 你可以編輯config/default.properties 文件控制事務(wù)發(fā)生和超時(shí)設(shè)置,。 distributed.transaction.recovery 屬性 這個(gè)屬性控制分布事物是否發(fā)生,。入這些事物可以發(fā)生的化,下面的條件必須滿足: 跨庫(kù)操作時(shí)的事物范圍,。 j2ee程序通過(guò)jdbc2.0 JTA驅(qū)動(dòng)訪問(wèn)數(shù)據(jù)庫(kù) 當(dāng)故障發(fā)生的時(shí)候,,事物的各個(gè)的組成部分可以按照符合兩段提交協(xié)議的方式提交或回滾。 事物發(fā)生的時(shí)候,,server重新啟動(dòng)后事物可以提交或回滾,。 distributed.transaction.recovery的值為true或者false。j2ee安裝后默認(rèn)為false。 distributed.transaction.recovery=false transaction.time屬性 在應(yīng)用container-managed 事物的ejb中,,你可以控制事物超時(shí)的間隔通過(guò)設(shè)置transaction.timeout的值 ,。例如: transaction.timeout=5 在設(shè)置以后,如果事物在5秒內(nèi)沒有完成,,j2ee事物管理器將回滾它,。 當(dāng)j2ee第一次安裝的時(shí)候,timeout的值時(shí)0代表沒有超時(shí),。 只有使用container-managed 管理事物的ejb受到timeout的影響,。至于在bean-managed和JTA transactions 中你可以引用 UserTransaction 的 setTransactionTimeout方法。同時(shí)你也可以在其他組建中 引用setTransactionTimeout方法:比如servlets和jsp,。 8,。端口 j2ee需要tcp/ip端口。修改config目錄下的相應(yīng)文件可以修改端口號(hào),。下表是端口號(hào)和相應(yīng)的文件,。 EJB 9191 ejb.properties http.port=9191 HTTP 8000 web.properties port=8000 HTTPS 7000 web.properties https.port=7000 Naming and Directory 1050 orb.properties port=1050 9191 端口用于提供client下載需要的stub類 8000 提供http服務(wù) 7000 提供https服務(wù) 1050 基于orb的jndi名字服務(wù)使用的端口 9。日志文件 j2ee server有幾個(gè)日志文件,。默認(rèn)這些文件在logs目錄下,。編輯config/default.properties 文件中的 log.directory 屬性可以更改默認(rèn)目錄。 log.directory=logs 同時(shí)你也可以編輯default.properties 文件更改日志文件的名字,。例如:你可以修改log.output 屬性的 值來(lái)修改the output.log 文件的名字,。 一般來(lái)說(shuō),日志文件決定于啟動(dòng)j2ee的模式,。(single還是multiple VM (virtual machine) 模式) Single VM 日志文件 默認(rèn)的情況是Single VM 模式,。在這種情況下,日志文件位于 $J2EE_HOME/ logs是在default.properties 文件中l(wèi)og.directory 屬性指定的,。host元素是計(jì)算機(jī)名稱,。 生成下列文件。 system.out system.err event.log output.log error.log system.out 和system.err文件包括ejb中 System.out 和 System.err的輸出,。如果你運(yùn)行j2ee -verbose 參數(shù),,輸出被寫到stdout(標(biāo)準(zhǔn)輸出) 和stderr(標(biāo)準(zhǔn)錯(cuò)誤。輸出),。system.out 和 system.err日志文件不 創(chuàng)建,。只有config/auth.properties 文件中audit屬性值為true時(shí)audit.lo才創(chuàng)建。 Multiple VM 日志 如果你用j2ee -mutiVM啟動(dòng)server,,ejb和http服務(wù)在自己的虛擬機(jī)以單獨(dú)的服務(wù)啟動(dòng),。每一個(gè)depploy的 應(yīng)用程序也在自己的虛擬機(jī)中運(yùn)行。日志文件和上述的一樣,,但是存放的目錄不同,。 目錄如下: EJB $J2EE_HOME/ HTTP $J2EE_HOME/ deployed application $J2EE_HOME/ web server日志 編輯web.properties文件中的內(nèi)容,可以改變由web server創(chuàng)建的日志文件的名字。 10,。安全 未授權(quán)用戶 對(duì)于j2ee來(lái)說(shuō),,當(dāng)有未授權(quán)的用戶試圖調(diào)用ejb container的時(shí)候,j2ee必須存在一般意義上的未授權(quán)用戶 存在,。在j2ee中這個(gè)用戶名字是guest,,密碼是guest123。你可以在auth.properties 文件中修改用戶名和密碼 ,。 default.principal.name=guest default.principal.password=guest123 Keystore密碼 如果用戶使用公鑰訪問(wèn)https,,認(rèn)證信息放在 System.getProperty("user.home")的返回值,。 keystore是一個(gè)典型的密碼文件,。默認(rèn)的密碼是changeit??梢栽趙eb.properties 文件中修改 keystore.password 屬性的值來(lái)改變密碼,。 ANYONE 角色 在application deployment工具的security面板中,默認(rèn)的情況下方法分配給ANYONE 角色,。這樣的結(jié)果 是所有的用戶和組都可以調(diào)用它,。如果你沒有影射到一個(gè)特定的角色,每一個(gè)用戶和用戶都可以調(diào)用它,??梢?BR> 在auth.properties 文件中設(shè)置anyone.role.name 的值來(lái)改變默認(rèn)anyone角色。 鈍化發(fā)生的條件:內(nèi)存限制 當(dāng)ejb container開始鈍化一個(gè)ejb的時(shí)候,,它把ejb保存在附屬存儲(chǔ)中并且試圖重新分配內(nèi)存,。默認(rèn)的情況 下,如果內(nèi)存使用超過(guò)128m的時(shí)候鈍化開始發(fā)生,??梢跃庉媍onfig/default.properties 文件中 passivation.threshold.memory 屬性的值來(lái)修改默認(rèn)值,。 passivation.threshold.memory=128000000 值必須是一個(gè)正的整數(shù),。當(dāng)你減少這個(gè)值的時(shí)候鈍化現(xiàn)象回經(jīng)常發(fā)生。 jndi name server host 如果jndi name server和j2ee server不在同一個(gè)機(jī)器上,,你必須改變config/orb.properties 文件中host 屬性的值,。 host=localhost HTTP 文檔根 默認(rèn)的情況下,http和https服務(wù)的文檔是public_html,。你可以編輯web.properties 文件中documentroot 屬性的值來(lái)改變它,。 documentroot=public_html/ |
|