構建JBoss IPv6協(xié)議網(wǎng)絡環(huán)境的方法
IPv6的使用是時代的需求,那么很多環(huán)境下還無法兼容這一新協(xié)議。那么現(xiàn)在我們就來談一談如何讓JBoss IPv6協(xié)議網(wǎng)絡環(huán)境下,實現(xiàn)對它的支持。具體的內容請大家從文中來了解一下。首先,我們分析一下實現(xiàn)的幾個要點。
JBoss IPv6協(xié)議網(wǎng)絡環(huán)境下,實現(xiàn)對IPv6的支持主要包括一下幾個要求:
1. Linux系統(tǒng)支持IPv6;
2. Java虛擬機支持IPv6;
3. JBoss應用服務器支持IPv6;
解決以上3部分的要求就能保證應用程序對IPv6的支持。
目前第一個問題已經(jīng)解決,Linux系統(tǒng)內核已能保證對IPv6的支持。
對于第二個問題,考慮到JDK1.5版本在Linux環(huán)境下,對IPv6的支持存在一個嚴重bug(具體可以搜索jdk IPv6 bug),所以JDK的版本必須滿足1.6+。這種情況下可以實現(xiàn)java虛擬機對IPv6的支持。
對于第三個問題,由于JBoss4.2.2GA的目標(target)JDK版本為1.5.,而根據(jù)之前所述的JDK1.5與IPv6的bug,JBoss無法完全支持IPv6,若通過JDK1.6啟動JBoss,將導致很多模塊啟動異常不能正常工作。目前JBoss5.0.0.Beta4的開發(fā)已經(jīng)結束,但是JBoss5.0.0對整個JBoss的核心改動較大,雖然在某種程度上說JBoss5.0.0可以支持IPv6,但這并不完全,且JBoss5.0.0并沒正式發(fā)布,存在較多bug。鑒于此無法完全實現(xiàn)JBoss IPv6協(xié)議的支持。
雖然無法提供完全的JBoss IPv6協(xié)議支持,但是運行之上的純網(wǎng)絡程序還是可以實現(xiàn)IPv6的(除了Web容器中的JSP和servlet,JMS JNDI等還是使用IPv4)。所以解決的方法是將JDK升級為1.6,并啟動JBoss4.2.2GA。由于之前所述中通過JDK1.6啟動時會出現(xiàn)JBoss的模塊啟動異常,所以需要解決JDK1.6和JBoss4.2.2GA的兼容問題。
主要兼容問題包括:
1. jaxb-api.jar 與JDK1.6中默認自帶的java.xml.binding包出現(xiàn)版本沖突。
2. saaj-api.jar 與JDK1.6中默認自帶的java.xml.soap包出現(xiàn)版本沖突。
3. saaj-api.jar本身與JBoss自帶的JBoss-saaj.jar存在沖突。
解決以上問題的方法如下:
1. 將程序依賴的jaxb-api.jar包放到JBoss目錄下lib\endorsed\包中,覆蓋掉JDK1.6中默認自帶的java.xml.binding。
2. 第二個問題與第三個問題實際上是同一個問題,解決方法是,裁剪JDK1.6,具體步驟是,將jdk目錄下jdk\jre\lib\下的rt.jar包中的java.xml.soap包刪掉。然后在JBoss安裝目錄下的bin文件夾中,修改run.conf文件,設定JAVA_HOME變量指向裁剪的JDK。如:
JAVA_HOME="/home/wangwei/jboss-4.2.2.GA-IPv6Test/jdk1.6.0_06"