一種類沖突問(wèn)題的處理方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001 ]本發(fā)明涉及類加載技術(shù)領(lǐng)域,更具體地說(shuō),涉及一種類沖突問(wèn)題的處理方法及裝置。
【背景技術(shù)】
[0002]中間件的各大廠商例如TomcatJeblogic等處理WEB模塊的類加載問(wèn)題都有不同的策略,不同的策略就決定了其是否能最大限度地避免類加載問(wèn)題。
[0003]發(fā)明人發(fā)現(xiàn),Tomcat用于處理WEB模塊的類加載問(wèn)題策略很少,且未提供有非委托策略;Weblogic用于WEB模塊的類加載問(wèn)題的策略復(fù)雜,且透明度不高。因此,在對(duì)類的加載過(guò)程中出現(xiàn)類沖突問(wèn)題時(shí),通常需要由專業(yè)工作人員根據(jù)個(gè)人經(jīng)驗(yàn)對(duì)類沖突問(wèn)題進(jìn)行解決,進(jìn)而造成人工成本較高,且經(jīng)常出現(xiàn)由于專業(yè)工作人員的經(jīng)驗(yàn)限制而無(wú)法有效解決類沖突問(wèn)題的情況。即現(xiàn)有技術(shù)中并不存在一種能夠?qū)︻悰_突問(wèn)題進(jìn)行有效處理的技術(shù)方案。
[0004]綜上所述,如何提供一種對(duì)類沖突問(wèn)題進(jìn)行有效處理的技術(shù)方案,是目前本領(lǐng)域技術(shù)人員亟待解決的問(wèn)題。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的是提供一種類沖突問(wèn)題的處理方法及裝置,以實(shí)現(xiàn)對(duì)于類沖突問(wèn)題的有效處理。
[0006]為了實(shí)現(xiàn)上述目的,本發(fā)明提供如下技術(shù)方案:
[0007]—種類沖突問(wèn)題的處理方法,包括:
[0008]當(dāng)對(duì)類進(jìn)行加載的過(guò)程中出現(xiàn)類沖突問(wèn)題時(shí),根據(jù)所述類沖突問(wèn)題配置加載機(jī)制;
[0009]如果所述加載機(jī)制為父加載包機(jī)制,則在應(yīng)用服務(wù)器AS和WEB模塊中均包含有與所述類對(duì)應(yīng)的類加載資源時(shí),利用父類加載器對(duì)所述AS中包含的類加載資源進(jìn)行加載;
[0010]如果所述加載機(jī)制為WEB加載包機(jī)制,則在所述AS與所述WEB模塊中均包含有所述類加載資源時(shí),利用WEB類加載器對(duì)所述WEB模塊中包含的類加載資源進(jìn)行加載;在僅有所述AS中包含所述類加載資源時(shí),利用所述父類加載器對(duì)所述AS中包含的類加載資源進(jìn)行加載。
[0011]優(yōu)選的,還包括:
[0012]當(dāng)對(duì)類進(jìn)行加載的過(guò)程中出現(xiàn)類沖突問(wèn)題時(shí),自動(dòng)分析所述類沖突問(wèn)題,得到分析結(jié)果;
[0013]依據(jù)所述分析結(jié)果輸出建議信息,所述建議信息包含對(duì)配置的加載機(jī)制的種類的具體建議。
[0014]優(yōu)選的,自動(dòng)分析所述類沖突問(wèn)題,得到分析結(jié)果之后,還包括:
[0015]將所述分析結(jié)果以可視化的方式進(jìn)行顯示。
[0016]優(yōu)選的,根據(jù)所述類沖突問(wèn)題配置加載機(jī)制,包括:
[0017]獲取外界輸入的配置信息,所述配置信息攜帶有配置標(biāo)識(shí);
[0018]配置與所述配置標(biāo)識(shí)對(duì)應(yīng)的配置機(jī)制。
[0019]優(yōu)選的,還包括:
[0020]如果所述加載機(jī)制為父加載包機(jī)制,且所述AS中不包含所述類加載資源,則拋出異常;
[0021]如果所述加載機(jī)制為WEB加載包機(jī)制,且所述AS中及所述WEB模塊中均不包含所述類加載資源,則拋出異常。
[0022]一種類沖突問(wèn)題的處理裝置,包括:
[0023]配置模塊,用于當(dāng)對(duì)類進(jìn)行加載的過(guò)程中出現(xiàn)類沖突問(wèn)題時(shí),根據(jù)所述類沖突問(wèn)題配置加載機(jī)制;
[0024]父加載包模塊,用于如果所述加載機(jī)制為父加載包機(jī)制,則在應(yīng)用服務(wù)器AS和WEB模塊中均包含有與所述類對(duì)應(yīng)的類加載資源時(shí),利用父類加載器對(duì)所述AS中包含的類加載資源進(jìn)行加載;
[0025]WEB加載包模塊,用于如果所述加載機(jī)制為WEB加載包機(jī)制,則在所述AS與所述WEB模塊中均包含有所述類加載資源時(shí),利用WEB類加載器對(duì)所述WEB模塊中包含的類加載資源進(jìn)行加載;在僅有所述AS中包含所述類加載資源時(shí),利用所述父類加載器對(duì)所述AS中包含的類加載資源進(jìn)行加載。
[0026]優(yōu)選的,還包括:
[0027]分析模塊,用于:當(dāng)對(duì)類進(jìn)行加載的過(guò)程中出現(xiàn)類沖突問(wèn)題時(shí),自動(dòng)分析所述類沖突問(wèn)題,得到分析結(jié)果;依據(jù)所述分析結(jié)果輸出建議信息,所述建議信息包含對(duì)配置的加載機(jī)制的種類的具體建議。
[0028]優(yōu)選的,還包括:
[0029]顯示模塊,用于將所述分析結(jié)果以可視化的方式進(jìn)行顯示。
[0030]優(yōu)選的,配置模塊包括:
[0031 ]配置單元,用于:獲取外界輸入的配置信息,所述配置信息攜帶有配置標(biāo)識(shí);配置與所述配置標(biāo)識(shí)對(duì)應(yīng)的配置機(jī)制。
[0032]優(yōu)選的,還包括:
[0033]異常拋出模塊,用于:如果所述加載機(jī)制為父加載包機(jī)制,且所述AS中不包含所述類加載資源,則拋出異常;如果所述加載機(jī)制為WEB加載包機(jī)制,且所述AS中及所述WEB模塊中均不包含所述類加載資源,則拋出異常。
[0034]本發(fā)明提供的一種類沖突問(wèn)題的處理方法及裝置,其中,該方法包括:當(dāng)對(duì)類進(jìn)行加載的過(guò)程中出現(xiàn)類沖突問(wèn)題時(shí),根據(jù)所述類沖突問(wèn)題配置加載機(jī)制;如果所述加載機(jī)制為父加載包機(jī)制,則在應(yīng)用服務(wù)器AS和WEB模塊中均包含有與所述類對(duì)應(yīng)的類加載資源時(shí),利用父類加載器對(duì)所述AS中包含的類加載資源進(jìn)行加載;如果所述加載機(jī)制為WEB加載包機(jī)制,則在所述AS與所述WEB模塊中均包含有所述類加載資源時(shí),利用WEB類加載器對(duì)所述WEB模塊中包含的類加載資源進(jìn)行加載;在僅有所述AS中包含所述類加載資源時(shí),利用所述父類加載器對(duì)所述AS中包含的類加載資源進(jìn)行加載。通過(guò)本申請(qǐng)公開(kāi)的上述技術(shù)特征,在出現(xiàn)類沖突問(wèn)題之后,自動(dòng)根據(jù)類沖突問(wèn)題配置加載機(jī)制,其中,加載機(jī)制包括父加載包機(jī)制或者WEB加載包機(jī)制,并且,實(shí)驗(yàn)證明,通過(guò)配置父加載包機(jī)制或WEB加載包機(jī)制能夠有效的對(duì)對(duì)應(yīng)的類沖突問(wèn)題進(jìn)行解決,即本申請(qǐng)?zhí)峁┑纳鲜黾夹g(shù)方案能夠有效解決類沖突問(wèn)題,且,無(wú)需專業(yè)工作人員利用個(gè)人經(jīng)驗(yàn)解決類沖突問(wèn)題,由此,降低了人工成本,提升了用戶體驗(yàn)。
【附圖說(shuō)明】
[0035]為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
[0036]圖1為本發(fā)明實(shí)施例提供的一種類沖突問(wèn)題的處理方法的流程圖;
[0037]圖2為本發(fā)明實(shí)施例提供的一種類沖突問(wèn)題的處理裝置的結(jié)構(gòu)示意圖;
[0038]圖3為本發(fā)明實(shí)施例提供的一種類沖突問(wèn)題的處理方法中InforsuiteAS的類加載層次樹(shù)示意圖;
[0039]圖4為本發(fā)明實(shí)施例提供的一種類沖突問(wèn)題的處理方法中InforsuiteAS的類加載策略圖。
【具體實(shí)施方式】
[0040]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0041]請(qǐng)參閱圖1,其示出了本發(fā)明實(shí)施例提供的一種類沖突問(wèn)題的處理方法的流程圖,可以包括以下步驟:
[0042]Sll:當(dāng)對(duì)類進(jìn)行加載的過(guò)程中出現(xiàn)類沖突問(wèn)題時(shí),根據(jù)類沖突問(wèn)題配置加載機(jī)制。
[0043]需要說(shuō)明的是,類沖突問(wèn)題與現(xiàn)有技術(shù)中出現(xiàn)的類沖突問(wèn)題一致,如找不到需要加載的類,或者對(duì)類進(jìn)行加載的方法與類不對(duì)應(yīng)導(dǎo)致無(wú)法對(duì)類進(jìn)行加載等,在此不再贅述。
[0044]另外,本發(fā)明實(shí)施例提供的一種類沖突問(wèn)題的處理方法可以基于InforsuiteAS實(shí)現(xiàn),且,現(xiàn)有技術(shù)中的InforsuiteAS采用的為委托機(jī)制,在委托機(jī)制下,WEB類加載器在加載之前,委托父類加載器進(jìn)行加載,如果父類加載器無(wú)法加載一個(gè)類,再由WEB類加載器對(duì)其進(jìn)行加載,即WEB類加載器只負(fù)責(zé)加載父類加載器加載不到的類,父類加載器對(duì)類的加載優(yōu)先于WEB類加載器。而通過(guò)本申請(qǐng)中公開(kāi)的上述技術(shù)特征,能夠通過(guò)配置的方式為InforsuiteAS增加非委托機(jī)制,即WEB類加載器對(duì)類的加載優(yōu)先于父類加載器。
[0045]S12:如果加載機(jī)制為父加載包機(jī)制,則在應(yīng)用服務(wù)器AS(Applicat1n Server)和WEB模塊中均包含有與類對(duì)應(yīng)的類加載資源時(shí),利用父類加載器對(duì)AS中包含的類加載資源進(jìn)行加載。
[0046]具體來(lái)說(shuō),配置父加載包機(jī)制,主要考慮到JEE規(guī)范建議盡量從JEE服務(wù)器獲取類加載資源,并且有些類加載資源一定得從父類加載器獲取,例如servlet類資源等,另外在非委托機(jī)制下,能讓工作人員靈活控制哪些類加載資源由父類加載器獲取。
[0047]S13:如果加載機(jī)制為WEB加載包機(jī)制,則在AS與WEB模塊中均包含有類加載資源時(shí),利用WEB類加載器對(duì)WEB模塊中包含的類加載資源進(jìn)行加載;在僅有AS中包含類加載資源時(shí),利用父類加載器對(duì)AS中包含的類加載資源進(jìn)行加載。
[0048]其中,僅有AS中包含類加載資源,即WEB模塊中并不包含類加載資源,具體來(lái)說(shuō),配置WEB加載包機(jī)制,主要考慮到在委托機(jī)制下的例外場(chǎng)景,能夠讓工作人員靈活控制哪些類加載資源由WEB類加載器進(jìn)行加載,其余則由父類加載器加載。
[0049]通過(guò)本申請(qǐng)公開(kāi)的上述技術(shù)特征,在出現(xiàn)類沖突問(wèn)題之后,自動(dòng)根據(jù)類沖突問(wèn)題配置加載機(jī)制,其中,加載機(jī)制包括父加載包機(jī)制或者WEB加載包機(jī)制,并且,實(shí)驗(yàn)證明,通過(guò)配置父加載包機(jī)制或WEB加載包機(jī)制能夠有效的對(duì)對(duì)應(yīng)的類沖突問(wèn)題進(jìn)行解決,即本申請(qǐng)?zhí)峁┑纳鲜黾夹g(shù)方案能夠有效解決類沖突問(wèn)題,且,無(wú)需專業(yè)工作人員利用個(gè)人經(jīng)驗(yàn)解決類沖突問(wèn)題,由此,降低了人工成本,提升了用戶體驗(yàn)。
[0050]本發(fā)明實(shí)施例提供的一種類沖突問(wèn)題的處理方法中,還可以包括:
[0051 ]當(dāng)對(duì)類進(jìn)行加載的過(guò)程中出現(xiàn)類沖突問(wèn)題時(shí),自動(dòng)分析類沖突問(wèn)題,得到分析結(jié)果;
[0052]依據(jù)分析結(jié)果輸出建議信息,建議信息包含對(duì)配置的加載機(jī)制的種類的具體建議。
[0053]S卩,在類沖突問(wèn)題出現(xiàn)時(shí),可以對(duì)類沖突問(wèn)題進(jìn)行自動(dòng)分析,從而得到分析結(jié)果,進(jìn)而根據(jù)分析結(jié)果輸出建議信息。其中,建議信息包含的具體建議即為建議配置父加載包機(jī)制或者WEB加載包機(jī)制中的一個(gè)的建議,具體可以為其建議配置的加載機(jī)制的配置標(biāo)識(shí),而配置標(biāo)識(shí)與加載機(jī)制的種類對(duì)應(yīng),即父加載包機(jī)制和WEB加載包機(jī)制具有不同的配置標(biāo)識(shí),從而能夠使得工作人員根據(jù)建議信息完成配置。
[0054]另外,自動(dòng)分析類沖突問(wèn)題,得到分析結(jié)果之后,還可以包括:
[0055]將分析結(jié)果以可視化的方式進(jìn)行顯示。
[0056]S卩,可