前幾天將一個原來的項目從weblogic上移植到了JBoss上,于是就將移植中出現(xiàn)的問題以及需要完成的工作記錄了下來,以供大家參考。
1、上下文(Context)的獲得方式不同,下面分別是兩者獲得上下文的代碼:
//weblogic中
PRoperties propJNDI = new Properties();
propJNDI.put(Context.INITIAL_CONTEXT_FACTORY,
"weblogic.jndi.WLInitialContextFactory");
propJNDI.put(Context.PROVIDER_URL,
"t3://127.0.0.1:7001");
Context context = new InitialContext( propJNDI);
// JBoss中就相當簡單了,只需要下面一句代碼
Context context = new InitialContext();
2、中文問題一直是令java程序員頭疼的問題,在weblogic中它已經內置了過濾器,幫助解決這個問題,在開發(fā)過程中只需要在web.xml簡單配置即可使用。而在JBoss并沒有提供解決辦法,但是我們通過自己編寫過濾器同樣可以簡單的解決這個問題。
// weblogic中的配置文件
<context-param>
<param-name>weblogic.httpd.inputCharset./*</param-name>
<param-value>GBK</param-value>
</context-param>
JBoss中過濾器的使用,可以參考本站另外一篇文章《Filter技術的應用》。
3、在weblogic中對工程目錄下資源文件的文件名的大小寫不敏感,而在JBoss中對資源文件的文件名的大小是敏感的。這個問題有時是很難發(fā)現(xiàn)的,所以在寫程序時我們一定要養(yǎng)成良好的習慣,這樣在程序移植時才不至于為了一個字母的大小寫而翻遍整個工程文件。
4、對于<jsp:include>標簽,如果在其中沒有包含<jsp:param>標簽,我們就可以寫成<jsp:include …></jsp:include>和<jsp:include …/>兩種形式,這在weblogic中時沒有任何錯誤。但是移植到JBoss中時,就要注意了。對于前者,JBoss就會搜索其中的<jsp:param>標簽,結果會因為沒有這個標簽而出現(xiàn)異常。所以在JBoss中對于這一類型的標簽,我們必須使用后一種形式。
5、<%@ page import="java.util.*" %>在jboss下必須在需要的時候引入,在weblogic中可以不引入。
6、頁面上的注釋問題。由于JSP頁面是由Html代碼構成,所以我們習慣于使用HTML代碼的注釋形式:<!-- … -->,這種形式的注釋在weblogic中可以順利執(zhí)行,但是在JBoss中它只能注釋單行的JSP標簽,例如<!-- jsp:include …/ -->。但是如果注釋多行,例如<jsp:include>中又包含了<jsp:param>標簽,就會發(fā)生異常:
The jsp:param action must not be used outside the jsp:include, jsp:forward, or jsp:params elements。
所以在JBoss中頁面上的JSP標簽最好使用java的標準注釋,如:
<%
/*
<jsp:include …>
<jsp:param …/>
</jsp:include>
*/
%>
7、web.xml文件中類似下面的配置,在weblogic中文件的路徑必須包含一個“/”,就是要使用絕對路徑,而在JBoss中需要使用相對路徑路徑,最前面不能帶有“/”,否則將訪問不到頁面。
weblogic中:
<welcome-file-list>
<welcome-file>/index.htm</welcome-file>
</welcome-file-list>
JBoss中:
<welcome-file-list>
<welcome-file>index.htm</welcome-file>
</welcome-file-list>
8、weblogic中的web.xml中的元素需要按照一定的順序排列,而在JBoss中并沒有這樣的要求,因此如果你把JBoss上的web.xml直接copy到weblogic的工程中時,可能會出現(xiàn)警告。當然,這并不影響程序的運行,解決的方法也很簡單,只需按照警告信息上給出的屬性的順序修改web.xml文件,即可消除警告。
9、web工程的文件或者文件夾:在weblogic中,web工程可以位于電腦上的任何目錄,只需在發(fā)布時指定文件的所在位置就可以了。而jBoss中web工程的文件或者文件夾必須位于deploy目錄下。對于沒有打包的web工程文件夾,在JBoss中文件夾的名字必須要以.war結尾,而在weblogic并不需要,只要按照web工程的標準形式組織,在發(fā)布時就會以和一般文件夾不同的形式顯示出來。
10、配置數(shù)據源。要使程序可以順利運行這一步是必不可少的。weblogic的數(shù)據源比較簡單,打開控制臺后,在左面的樹形菜單上會找到Services—〉JDBC—〉Connection Pools和Services—〉JDBC—〉DataSources,先后在其中配置連接池和數(shù)據源即可。在JBoss中,打開%JBOSS_HOME%/docs/examples/jca文件夾,里面是各種數(shù)據庫相對應的數(shù)據源配置文件,將需要的文件copy到deploy目錄下,任何修改其中其中的參數(shù)即可。需要注意的是:在weblogic中數(shù)據源的JNDI就是所配置的名字,而JBoss中并不是配置文件中的那個名稱(SourceName),而是java:SourceName,可以在JBoss啟動時從控制臺看到。所以程序中獲得數(shù)據源一定要注意。
(出處:http://www.companysz.com)
新聞熱點
疑難解答