前兩天由于客戶的需要,沒辦法搞了一次應用服務器的遷移,從
weblogic8.1
到
oracle AS10gR2
。中間出了一些小問題,費了一些時間,現在記于此,權作一份文檔吧。
第一步:
配置
oracle application server 10
服務:
?
1.? 將oracle-jbsp.jar包放至\JBuilderX\lib\servers目錄下,重起JBuilderX;
2.? 打開項目屬性菜單,點擊server后,選擇右邊的single server,選擇新的服務(oracle application server 10);
3.?
將新窗口右邊的 Enable server選中,點擊General標簽,修改home directory為$ORACLE_HOME/j2ee/home
(
AS10gR2安裝目錄下)。
4.點擊
Custom標簽,在Admin password域填入安裝AS10gR2時輸入的密碼。
5.點擊ok按鈕保存。
?
第二步:原代碼修改
1。由于此次中間件的遷移后不再有weblogic,所以就要把代碼中涉及到weblogic的特有的類的源程序修改為通用的代碼。主要的地方就是InitialContext的初始化了,不能再使用t3了,可以簡單修改如下:
InitialContext ctx = null;
ctx = new InitialContext();
如果你本身用的就是通用的初始化方法,當然也就不需要修改了。總之就是不能使其它服務特有的東西雜合進來。
????2。代碼規范性問題,有些jsp文件用到諸如Iterator類而沒有import 包java.uitl,Oracle AS不能容錯。要應用了java util包的jsp文件中使用<%@ page import=”java.util.*”%>語句。
???? 3。中文問題:代碼規范性問題,JSP代碼中ContextType兩次定義在Oracle AS不能容錯。去掉common文件夾下header.jsp等所有被包含文件中的編碼語句“<%@ page contentType="text/html; charset=GBK" %>”,增加其他所有jsp文件編碼語句(如不存在編碼語句),并去除包含 include/charset.inc文件的語句。
???? 4。ejb Local接口:應用系統中會話Bean能過Local接口調用實體Bean,調用方式與應用服務器存在相關性,需要修改描述文件及代碼。1)????? 修改描述文件,在“ejb-jar.xml”文件中增加“ejg-local-ref”描述符,可運行JBuilder添加;2)修改代碼,在被調用本地接口的實體Bean的JNDI名稱前增加java:com/env前綴。
????
第三步:部署應用程序到服務器
1.? 在原項目下新建一個ear應用,編譯整個項目生成.ear包。
2.? 啟動oracle AS 服務,打開http://hyq:1810,進入應用服務的控制臺主頁面。
3.? 點擊創建OC4J實例按鈕,輸入一個實例名如HYQ。點擊創建按鈕。創建成功后點擊確定。
4.? 打開新建的HYQ應用(在系統組件域內)
5.? 單擊管理標簽后進入新的頁面,點擊應用程序默認值域內的數據源(D)標簽進行數據源創建。
6.? 在新頁面中點擊創建按鈕,輸入名稱如HyqDS,數據源類輸入com.evermind.sql.DriverManagerDataSource,Jdbc url中輸入jdbc:oracle:thin:@//192.168.0.1:1521/hyq,jdbc驅動輸入oracle.jdbc.driver.OracleDriver。輸入用戶名和密碼(使用明文口令)。在JNDI 位置中輸入HyqDS,事務處理 (XA) 位置輸入:XA/HyqDS;EJB 位置輸入:HyqDS。點擊創建。
7.? 點擊OC4J: HYQ標簽,返回主頁面
8.? 點擊部署EAR文件進行部署(時間較長)。
9.? 一切ok,完成!
另外注意:
1。在安裝oracle AS10gR2時,如果同臺電腦上已經安裝的有oracle db,要確保db的所有服務全部手動關掉,否則,安裝過程中就會出現服務沖突的現象,尤其是http server。
2。安裝過程中,會創建一個應用實例,它的管理員用戶名為:ias_admin。這是固定的,但是密碼一定要記住,因為你要使用這個密碼登陸控制臺。
3。安裝完oracle AS10gR2時會有提示,要求你記住安裝后的一些信息,包括登陸首頁的鏈接和登陸管理控制臺的鏈接等。其中,登陸首頁的端口號也就是你登陸發布應用后,鏈接你自己應用的端口號。