前幾天將一個原來的項目從weblogic上移植到了JBoss上,因而就將移植中出現的問題以及須要完成的工做記錄了下來,以供你們參考。
一、上下文(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();php
二、中文問題一直是令java程序員頭疼的問題,在weblogic中它已經內置了過濾器,幫助解決這個問題,在開發過程當中只須要在web.xml簡單配置便可使用。而在JBoss並無提供解決辦法,可是咱們經過本身編寫過濾器一樣能夠簡單的解決這個問題。
// weblogic中的配置文件
<context-param>
<param-name>weblogic.httpd.inputCharset./*</param-name>
<param-value>GBK</param-value>
</context-param>
JBoss中過濾器的使用,能夠參考本站另一篇文章《Filter技術的應用》。html
三、在weblogic中對工程目錄下資源文件的文件名的大小寫不敏感,而在JBoss中對資源文件的文件名的大小是敏感的。這個問題有時是很難發現的,因此在寫程序時咱們必定要養成良好的習慣,這樣在程序移植時纔不至於爲了一個字母的大小寫而翻遍整個工程文件。java
四、對於<jsp:include>標籤,若是在其中沒有包含<jsp:param> 標籤,咱們就能夠寫成<jsp:include …></jsp:include>和<jsp:include …/>兩種形式,這在weblogic中時沒有任何錯誤。可是移植到JBoss中時,就要注意了。對於前者,JBoss就會搜索其中 的<jsp:param>標籤,結果會由於沒有這個標籤而出現異常。因此在JBoss中對於這一類型的標籤,咱們必須使用後一種形式。程序員
五、<%@ page import="java.util.*" %>在jboss下必須在須要的時候引入,在weblogic中能夠不引入。web
六、頁面上的註釋問題。因爲JSP頁面是由Html代碼構成,因此咱們習慣於使用HTML代碼的註釋形式:<!-- … -->,這種形式的註釋在weblogic中能夠順利執行,可是在JBoss中它只能註釋單行的JSP標籤,例如<!-- jsp:include …/ -->。可是若是註釋多行,例如<jsp:include>中又包含了<jsp:param>標籤,就會發生異常:
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>
*/
%>sql
七、web.xml文件中相似下面的配置,在weblogic中文件的路徑必須包含一個「/」,就是要使用絕對路徑,而在JBoss中須要使用相對路徑路徑,最前面不能帶有「/」,不然將訪問不到頁面。數據庫
這裏要表達的意思是JBoss下要使用絕對路徑,則前面不能帶「/」jsp
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>ide
八、weblogic中的web.xml中的元素須要按照必定的順序排列,而在JBoss中並無這樣的要求,所以若是你把JBoss上的web.xml 直接copy到weblogic的工程中時,可能會出現警告。固然,這並不影響程序的運行,解決的方法也很簡單,只需按照警告信息上給出的屬性的順序修改 web.xml文件,便可消除警告。ui
九、web工程的文件或者文件夾:在weblogic中,web工程能夠位於電腦上的任何目錄,只需在發佈時指定文件的所在位置就能夠了。而jBoss中 web工程的文件或者文件夾必須位於deploy目錄下。對於沒有打包的web工程文件夾,在JBoss中文件夾的名字必需要以.war結尾,而在 weblogic並不須要,只要按照web工程的標準形式組織,在發佈時就會以和通常文件夾不一樣的形式顯示出來。
十、配置數據源。要使程序能夠順利運行這一步是必不可少的。weblogic的數據源比較簡單,打開控制檯後,在左面的樹形菜單上會找到 Services—〉JDBC—〉Connection Pools和Services—〉JDBC—〉DataSources,前後在其中配置鏈接池和數據源便可。在JBoss中,打 開%JBOSS_HOME%\docs\examples\jca文件夾,裏面是各類數據庫相對應的數據源配置文件,將須要的文件copy到deploy目錄下,任何修改其中其中的參數便可。須要注意的是:在weblogic中數據源的JNDI就是所配置的名字,而JBoss中並非配置文件中的那個名稱(SourceName),而是java:SourceName,能夠在JBoss啓動時從控制檯看到。因此程序中得到數據源必定要注意。