<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中文字幕| 成年女人男人免费视频播放| 亚洲精品又粗又大又爽A片| 好吊妞788免费视频播放| 国产精品亚洲色婷婷99久久精品| 免费jjzz在在线播放国产| 香蕉国产在线观看免费| 亚洲精品在线视频| 国产午夜无码精品免费看| 亚洲AV无码国产在丝袜线观看| 一级毛片免费观看不卡视频| 亚洲成AV人片久久| 免费看大美女大黄大色| 国产亚洲男人的天堂在线观看| 亚洲精品国精品久久99热| 精品国产福利尤物免费| 午夜影视日本亚洲欧洲精品一区| 18pao国产成视频永久免费| 亚洲黄页网在线观看| 全亚洲最新黄色特级网站 | 亚洲日本在线电影| 国产大片91精品免费观看男同| 特级做a爰片毛片免费看| 久久亚洲精品国产精品黑人| 无码国产精品一区二区免费 | 中文成人久久久久影院免费观看| 亚洲A∨无码一区二区三区 | mm1313亚洲精品国产| 久久九九全国免费| 国产成人精品日本亚洲直接| 成人亚洲网站www在线观看| 最近中文字幕大全免费版在线 | 四虎亚洲国产成人久久精品| 国产精品免费看久久久| 亚洲一区二区三区丝袜| 国产AV无码专区亚洲AV漫画| 国产h视频在线观看免费| 国产99久久久久久免费看|