<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    破門點(diǎn)滴(Java技術(shù)版)

    在日常學(xué)習(xí)和工作中記錄

      BlogJava :: 首頁(yè) ::  :: 聚合  :: 管理
      15 Posts :: 7 Stories :: 36 Comments :: 0 Trackbacks
    發(fā)表于 2004-12-26 18:59:04

    ?思路:

    1、將URL對(duì)象中的factory對(duì)象擴(kuò)展為一個(gè)factorysHashtable對(duì)象,將setURLStreamHandlerFactory的調(diào)用修改為將新的factory對(duì)象放入列表。

    2、創(chuàng)建Handler時(shí)則遍歷factorys列表,按照注冊(cè)的先后順序調(diào)用factory對(duì)象嘗試創(chuàng)建Handler對(duì)象。

    ?

    實(shí)際解決方案:

    通過java自帶的源代碼包找出 java.net.URL對(duì)象,做如下修改:

    1、增加 factorys 列表屬性

    static Hashtable factorys = new Hashtable();

    …..

    ?

    2、修改 setURLStreamHandlerFactory() 方法

    public static void setURLStreamHandlerFactory(URLStreamHandlerFactory fac) {

    ?????? synchronized (streamHandlerLock) {

    ????????????? // 為了支持多Factory

    //???? ??? if (factory != null) {

    //??????????? throw new Error("factory already defined");

    //???? ??? }

    ????????????? …..

    ?????? ??? factory = fac;

    ?????? ??? // factory 放入列表

    ?????? ??? factorys.put(Integer.toString(factorys.size()), fac);

    ?????? }

    ??? }

    1、? 增加createURLStreamHandler 私有方法,通過Factory列表創(chuàng)建Handler

    ?????? private static URLStreamHandler createURLStreamHandler(String protocol) {

    ????????????? for (int i=0; i < factorys.size(); i++) {

    ???????????????????? factory = (URLStreamHandlerFactory) factorys.get(Integer.toString(i));

    ???????????????????? URLStreamHandler handler = factory.createURLStreamHandler(protocol);

    ???????????????????? if (handler != null) {

    ??????????????????????????? return handler;

    ???????????????????? }

    ????????????? }

    ????????????? return null;

    ?????? }

    2、? 修改getURLStreamHandler中獲取Handler的方法

    …..

    ?????? ??? // Use the factory (if any)

    //???? ??? if (factory != null) {

    //??????????? handler = factory.createURLStreamHandler(protocol);

    //??????????? checkedWithFactory = true;

    //???? ??? }

    ?????? ??? // 使用factory列表

    ?????? ??? if (factorys != null) {

    ?????? ??? ?????? handler = createURLStreamHandler(protocol);

    ?????? ??? ?????? checkedWithFactory = true;

    ?????? ??? }

    ????????????? ……

    ?

    ????????????? // Check with factory if another thread set a

    ????????????? // factory since our last check

    //??????????? if (!checkedWithFactory && factory != null) {

    //??????????? ??? handler2 = factory.createURLStreamHandler(protocol);

    //??????????? }

    ????????????? if (!checkedWithFactory && factorys != null) {

    ????????????? ??? handler2 = createURLStreamHandler(protocol);

    ????????????? }

    ?

    3、? 編譯修改后的URL類,將URL.class 替換 rt.jar 包中的原始類文件。

    ?

    替換rt.jar的具體方法:

    a)?????? zip工具(或jar工具)將rt.jar文件解開到一個(gè)目錄(假設(shè)為rt

    b)????? 替換 rt/java/net/URL.class 文件為新類文件

    c)????? rt 目錄下運(yùn)行命令 jar cvf0M rt.jar . 生成 rt.jar 文件

    d)????? 將新生成的 rt.jar 文件覆蓋原始的JRE中的 rt.jar 文件


    ?

    至此,以上ava.lang.Error: factory already defined問題解決。



    Triones Runtime: 新的JRE下,Triones web系統(tǒng)運(yùn)行的輸出結(jié)果

    2004-12-26 1:10:07 org.apache.coyote.http11.Http11Protocol init

    信息 : Initializing Coyote HTTP/1.1 on http-8886

    2004-12-26 1:10:07 org.apache.catalina.startup.Catalina load

    信息 : Initialization processed in 1121 ms

    2004-12-26 1:10:07 org.apache.catalina.core.StandardService start

    信息 : Starting service Tomcat-Standalone

    2004-12-26 1:10:07 org.apache.catalina.core.StandardEngine start

    信息 : Starting Servlet Engine: Apache Tomcat/5.0.28

    2004-12-26 1:10:07 org.apache.catalina.core.StandardHost start

    信息 : XML validation disabled

    [ ] 這里是 Triones(Eclipse) 開始啟動(dòng)

    Configuration file:

    ??? file:/D:/netshop/configuration/config.ini not found or not read

    Configuration location:

    ??? file:/D:/netshop/triones/configuration/

    Configuration file:

    ??? file:/D:/netshop/triones/configuration/config.ini loaded

    Shared configuration location:

    ??? file:/D:/netshop/configuration/

    Triones Framework located:

    ??? file:/D:/netshop/triones/plugins/org.softme.triones.runtime_0.0.1/

    Framework located:

    ??? file:/D:/netshop/triones/plugins/org.eclipse.osgi_3.1.0/

    Loading framework classpath from:

    ??? file:/D:/netshop/triones/plugins/org.eclipse.osgi_3.1.0/eclipse.properties

    Framework classpath:

    ??? file:/D:/netshop/triones/plugins/org.eclipse.osgi_3.1.0/core.jar

    ??? file:/D:/netshop/triones/plugins/org.eclipse.osgi_3.1.0/console.jar

    ??? file:/D:/netshop/triones/plugins/org.eclipse.osgi_3.1.0/osgi.jar

    ??? file:/D:/netshop/triones/plugins/org.eclipse.osgi_3.1.0/resolver.jar

    ??? file:/D:/netshop/triones/plugins/org.eclipse.osgi_3.1.0/defaultAdaptor.jar

    ??? file:/D:/netshop/triones/plugins/org.eclipse.osgi_3.1.0/eclipseAdaptor.jar

    Debug options:

    ??? file:/D:/DevEnv/eclipse/.options not found

    Time to load bundles: 30

    !SESSION 2004-12-26 01:10:09.697 -----------------------------------------------

    eclipse.buildId=M200409161125

    java.version=1.4.2

    java.vendor=Sun Microsystems Inc.

    BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=zh_CN

    Command-line arguments: -nosplash -refresh

    [ ] 這里是 Triones Framework (Runtime) 開始運(yùn)行

    Starting application: 1563

    ------------------------------------

    Triones Framework: Started!

    Triones Framework: Hello!

    2004-12-26 1:10:10 org.apache.catalina.core.StandardHost getDeployer

    信息 : Create Host deployer for direct deployment ( non-jmx )

    2004-12-26 1:10:10 org.apache.coyote.http11.Http11Protocol start

    信息 : Starting Coyote HTTP/1.1 on http-8886

    2004-12-26 1:10:10 org.apache.catalina.startup.Catalina start

    信息 : Server startup in 2634 ms

    [ ] 這里是 Triones Framework (System Job) 開始運(yùn)行, Tomcat 已經(jīng)啟動(dòng)完畢。

    Triones Job: begin...

    Triones Job: idle-0

    Triones Job: idle-1

    Triones Job: done.

    [ ] 這里是 Triones Framework (Runtime) 開始響應(yīng) web 請(qǐng)求,加載 Runtime 的控制器

    [URL]http://localhost:8886/netshop/

    LoadControllers(): found extentions - 1

    LoadControllers(): namespace - org.softme.triones.runtime.

    LoadControllers(): config size- 3

    LoadController:-org.softme.triones.controller.DefaultServletController@d0220c

    LoadController:-org.softme.triones.controller.DefaultActionController@1a19458

    LoadController:-org.softme.triones.controller.DefaultViewController@383118

    [ ] 這里是 Triones Framework (Runtime) 根據(jù)請(qǐng)求訪問指定的插件

    URL http://localhost:8886/netshop/triones/view/org.softme.triones.hello/hello.html

    update@/D:/netshop/triones/plugins/org.softme.triones.hello_0.0.1/ [7]

    hello.html

    file:/D:/netshop/triones/plugins/org.softme.triones.hello_0.0.1/hello.html

    [ ] 這里 Tomcat 開始關(guān)閉

    2004-12-26 1:10:49 org.apache.coyote.http11.Http11Protocol pause

    信息 : Pausing Coyote HTTP/1.1 on http-8886

    2004-12-26 1:10:50 org.apache.catalina.core.StandardService stop

    信息 : Stopping service Tomcat-Standalone

    2004-12-26 1:10:50 org.apache.catalina.core.StandardHostDeployer remove

    [ ] 這里是 Tomcat 關(guān)閉 Triones Framework 支持的應(yīng)用 (netshop)

    信息 : Removing web application at context path /netshop

    [ ] 這里是 Triones Framework (Runtime) 關(guān)閉

    Triones Framework: Stoped!

    ------------------------------------

    2004-12-26 1:10:50 org.apache.catalina.logger.LoggerBase stop

    信息 : unregistering logger Standalone:type=Logger,host=localhost

    2004-12-26 1:10:50 org.apache.catalina.logger.LoggerBase stop

    信息 : unregistering logger Standalone:type=Logger

    2004-12-26 1:10:50 org.apache.coyote.http11.Http11Protocol destroy

    信息 : Stopping Coyote HTTP/1.1 on http-8886

    [ ] Tomcat 正常退出



    不得窺道門,不得悟佛門,不得入窄門,實(shí)乃破門。
    posted on 2006-03-27 10:30 破門 閱讀(708) 評(píng)論(0)  編輯  收藏 所屬分類: Triones
    主站蜘蛛池模板: 亚洲人精品亚洲人成在线| 亚洲中文无码永久免费| 国产福利在线免费| 午夜在线免费视频| 亚洲酒色1314狠狠做| 免费人成视频在线| 思思久久99热免费精品6 | 亚洲人xxx日本人18| 亚洲午夜久久久久妓女影院 | 欧洲亚洲国产精华液| 亚洲精品国产情侣av在线| 亚洲成AV人片一区二区| 亚洲一区二区三区在线播放| 亚洲av日韩av欧v在线天堂| 日本免费人成视频播放| 最新中文字幕电影免费观看| 在线观看日本免费a∨视频| 国产精品成人观看视频免费 | 精品亚洲国产成人av| 美女视频黄.免费网址| 国产成人亚洲午夜电影| 综合一区自拍亚洲综合图区 | 亚洲精品亚洲人成在线观看麻豆| 亚洲αv久久久噜噜噜噜噜| 亚洲丝袜美腿视频| 亚洲综合激情九月婷婷| 亚洲一区二区三区高清视频| 亚洲理论在线观看| 中文字幕精品三区无码亚洲| 看全免费的一级毛片| EEUSS影院WWW在线观看免费 | 91高清免费国产自产| a级毛片无码免费真人| 免费在线观看一级毛片| 亚洲人成图片小说网站| 亚洲毛片一级带毛片基地| 涩涩色中文综合亚洲| av电影在线免费看| 84pao国产成视频免费播放| 成年女人喷潮毛片免费播放| 免费va在线观看|