2015-07-20 66 views
1

突然,Glassfish不再以調試模式啓動。我得到以下錯誤:OS X:無法在調試模式下啓動Glassfish

objc[4235]: Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines/jdk1.7.0_67.jdk/Contents/Home/bin/java and /Library/Java/JavaVirtualMachines/jdk1.7.0_67.jdk/Contents/Home/jre/lib/libinstrument.dylib. One of the two will be used. Which one is undefined. 
ERROR: transport error 202: connect failed: Connection refused 
ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510) 
JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [../../../src/share/back/debugInit.c:750] 
FATAL ERROR in native method: JDWP No transports initialized, jvmtiError=AGENT_ERROR_TRANSPORT_INIT(197) 
Command start-domain failed. 
The DAS was stopped. 

我沒有其他進程在調試器端口(9009)上運行。我正在使用Java 7,Yosemite和Glassfish(嘗試3和4)。

+0

你的調試選項是什麼?在我的情況下,我有「jdwp = transport = ...,suspend = y」,這導致了相同的錯誤!並且該值由IntelliJ(它修改了domain.xml)設置,這讓我花了一些時間來實現。 – Robin

+0

是的,我也注意到了這一點,並恢復了IntelliJ所做的更改。但是,再次,IntelliJ中的其他一些東西沒有工作。我想我無法再調試我的應用程序了。最終,我轉回到NetBeans。 – Theo

+0

我認爲你必須使用兩個域名或者手動啓動Glassfish,然後遠程連接IntelliJ。如果IntelliJ啓動Glassfish,它似乎需要「suspend = y」(我認爲這是一個bug)。 – Robin

回答

1

錯誤似乎是由於使用錯誤的調試選項「jdwp = transport = ...,suspend = y」造成的。
這些設置是本地調試所需的(如果Glassfish由另一個進程啓動,例如由IntelliJ啓動)。 另一個選擇是首先啓動Glassfish,調試設置爲「server = y,suspend = n」,然後遠程連接一個調試器。
有關IntelliJ的更多說明,請參閱此comment to IDEA-95585