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