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

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

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

    sharky的點滴積累

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      56 隨筆 :: 104 文章 :: 10 評論 :: 0 Trackbacks

    最近在JB2006上寫WebAPP時,在啟動服務器調試程序時,總是JB這樣報錯:
    -- Cannot start Java debug process VM --

    com.sun.jdi.connect.VMStartException: VM initialization failed for: F:\Borland\JBuilder2006\jdk1.5\bin\javaw -classpath "F:\Borland\JBuilder2006\thirdparty\jakarta-tomcat-5.5.9\bin\bootstrap.jar;F:\Borland\JBuilder2006\jdk1.5\lib\tools.jar"  "-Dcatalina.home=F:/Borland/JBuilder2006/thirdparty/jakarta-tomcat-5.5.9"  -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=yuchao-home:1123,suspend=y org.apache.catalina.startup.Bootstrap -config F:\jworkspace\GuestBook\Tomcat\conf\server8080.xml start
    ERROR: transport error 202: connect failed: Connection refused ["transport.c",L41]
    ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510) ["debugInit.c",L497]
    JDWP exit error JVMTI_ERROR_INTERNAL(113): No transports initialized

    上網搜索了一下找到了原因:
    原處:http://blog.aspcool.com/zephyr/articles/2025.html

    我用JBuilder8以及JBuilder2005開發Web項目時, 不管使用自帶的Tomcat4還是Tomcat5,均無法進入Debug模式, 提示:
    -- Cannot start Java debug process VM --

    com.sun.jdi.connect.VMStartException: VM initialization failed for: C:\JBuilder2005\jdk1.4\bin\javaw -classpath "C:\JBuilder2005\thirdparty\jakarta-tomcat-5.0.27\bin\bootstrap.jar;C:\JBuilder2005\jdk1.4\lib\tools.jar"  "-Dcatalina.home=C:/JBuilder2005/thirdparty/jakarta-tomcat-5.0.27"  -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=suzpcssdgs613:2381,suspend=y org.apache.catalina.startup.Bootstrap -config D:\abc\Tomcat\conf\server8080.xml start
    Transport dt_socket failed to initialize, rc = 509.


    Goolge了一番后,終于找到了原因:
    由于我的機器上安裝了多個JDK,而且在環境變量%PATH%中, 第一個出現的Java路徑是"D:\jdk1.5\jre\bin",而JB使用的Java是"C:\JBuilder2005\jdk1.4\bin\ javaw",因而導致了"Connector"的問題.

    顯然, 解決的方法無非是以下二者之一::
    一. 設置Path變量的Java路徑, 使之指向JB的Java
    二. 設置Jbuilder's JDK路徑,使之同Path里面的JDK路徑一致 (我的做法). 具體方法:
     a. Tool->Configure->JDK, 把 "D:\jdk1.5" 加進去.
     b. Project->Project Properties->Run, 依次選擇 "Server" runtime configuration, "Edit", "JDK", use the "specified jdk" , select the jdk1.5

    然后, 啟動Debug模式, OK. 從以下的輸出可以看出不同(注意下劃線部分)
    D:\jdk1.5\bin\javaw -classpath "C:\JBuilder2005\thirdparty\jakarta-tomcat-5.0.27\bin\bootstrap.jar;D:\jdk1.5\lib\tools.jar"  "-Dcatalina.home=C:/JBuilder2005/thirdparty/jakarta-tomcat-5.0.27"  -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=suzpcssdgs613:2779,suspend=y org.apache.catalina.startup.Bootstrap -config D:\abc\Tomcat\conf\server8080.xml start
    Mar 15, 2005 11:26:12 AM org.apache.coyote.http11.Http11Protocol init
    http://forum.java.sun.com/thread.jspa?threadID=577610&messageID=3025506

    問題分析:
    Java的調試是通過所謂的JPDA架構(Java Platform Debugger Architecture) 和JDWP協議(Java Debug Wire Protocol), 來實現的. 在JPDA下, 調試器與被調試的VM(Target VM) 通過Transport來通信. Sun實現了兩種Transport: 基于Socket的TCP/IP Transport和共享內存的Transport. 基于Socket的方式可以實現跨平臺的遠程調試, 而共享內存的方式只能在Windows平臺下的同一臺機器上.
    在JPDA下, 調試器通過封裝了Transport的Connector來建立同Target VM的連接, 而Target VM上也有一個VM本身內置的封裝了Transport的Agent來接受連接.

    具體到SUN的VM實現, 為了啟動JDWP Agent以被調試, 在運行Target VM的時候需要加入以下參數: -Xdebug(啟動Debugging) 和 -Xrunjdwp:(配置Connector)

    -Xrunjdwp需要transport屬性指明Connector類型(Socket還是Shared Memory), server屬性指明主動還是被動(server='y', 被動監聽Debugger的連接, server='n', 主動連接到Debugger, 默認是'n'), Address屬性(當server='y'的時候, 表明監聽得端口, 當server=n的時候,表明Debugger的地址.

    回到JB的問題上, 對照JB給出的啟動調試的命令行參數:-Xrunjdwp:transport=dt_socket,address=suzpcssdgs613:2381 可以知道:JB使用socket方式的Connector啟動Tomcat5(org.apache.catalina.startup.Bootstrap), 主動連接到2381端口上的調試器.

    posted on 2005-10-29 14:48 sharky的點滴積累 閱讀(788) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 免费人成网上在线观看| 亚洲精品乱码久久久久蜜桃| 国产综合免费精品久久久| 四虎影在线永久免费观看| 亚洲精品无码av中文字幕| 毛片免费观看的视频| 中文字幕亚洲综合小综合在线| 青娱分类视频精品免费2| 亚洲影视自拍揄拍愉拍| 国产精品1024永久免费视频| 久久久久se色偷偷亚洲精品av| 免费毛片a在线观看67194 | 中国一级特黄高清免费的大片中国一级黄色片 | 中文字幕亚洲日本岛国片| 国产免费人成视频在线播放播| 中文字幕亚洲日韩无线码| 免费国产成人18在线观看| 亚洲欧洲另类春色校园小说| 成人免费视频小说| 日本黄页网址在线看免费不卡| 在线亚洲午夜理论AV大片| 在线观看91精品国产不卡免费| 国产成人亚洲午夜电影| 中文字幕亚洲不卡在线亚瑟| 久久国产精品免费网站| 亚洲va精品中文字幕| 免费国产a国产片高清网站| 天堂在线免费观看| 亚洲一级片在线播放| 四虎影永久在线高清免费| 免费精品一区二区三区第35| 亚洲人6666成人观看| 四虎影在线永久免费四虎地址8848aa| 中文字幕免费在线观看动作大片| 亚洲欧洲尹人香蕉综合| 亚洲第一成人影院| 免费播放一区二区三区| 精品视频免费在线| 久久亚洲中文字幕精品有坂深雪| 在线免费观看国产视频| 久久爰www免费人成|