2013-04-04 21 views
5

Na OSX w/Tomcat7 i IDEA IntelliJ 12.Nie można debugować projektu Java w IDEA IntelliJ 12

Konfiguracja uruchamiania działa dobrze. Konfiguracja debugowania narzeka:

/usr/local/Cellar/tomcat/7.0.37/libexec/bin/catalina.sh run 
    Error occurred during initialization of VM 
    agent library failed to init: jdwp 
    ERROR: Cannot load this JVM TI agent twice, check your java command line for duplicate jdwp options. 
    Disconnected from server 

znalazłem this słupek z '11, ale to nie pomaga.

Notka o tym, że "raz usunąłem ze zmiennych systemowych (wewnątrz IDEA jest tylko do odczytu) problem został naprawiony" ma sens. Próbowałem usunąć cały blok z catalina.sh

if [ -z "$JPDA_OPTS" ]; then 
    JPDA_OPTS="-agentlib:jdwp=transport=$JPDA_TRANSPORT,address=$JPDA_ADDRESS,server=y,suspend=$JPDA_SUSPEND" 
    fi 

Nie pomogło. Każda pomoc będzie bardzo ceniona. Dzięki!

java polecenie Run:

+ eval exec '"/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java"' '"-Djava.util.logging.config.file=/Users/ryan/Library/Caches/IntelliJIdea12/tomcat/Unnamed_secure_post_3/conf/logging.properties"' -Xdebug -Xrunjdwp:transport=dt_socket,address=127.0.0.1:65523,suspend=y,server=n -Dcom.sun.management.jmxremote= -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=127.0.0.1 -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000 -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager '-Djava.endorsed.dirs="/usr/local/Cellar/tomcat/7.0.37/libexec/endorsed"' -classpath '"/usr/local/Cellar/tomcat/7.0.37/libexec/bin/bootstrap.jar:/usr/local/Cellar/tomcat/7.0.37/libexec/bin/tomcat-juli.jar"' '-Dcatalina.base="/Users/ryan/Library/Caches/IntelliJIdea12/tomcat/Unnamed_secure_post_3"' '-Dcatalina.home="/usr/local/Cellar/tomcat/7.0.37/libexec"' '-Djava.io.tmpdir="/usr/local/Cellar/tomcat/7.0.37/libexec/temp"' org.apache.catalina.startup.Bootstrap start 
+0

Czy można wyświetlić wywołanie wiersza komend, które jest faktycznie uruchamiane (w catalina.sh, gdy wywołuje plik wykonywalny "java")? – mpierce

+0

Nie idę za tobą. Kopię mój plik wojenny do katalogu webapps tomcat i uruchamiam catalina. – Ryan

+0

Dodaj instrukcję 'echo' w skrypcie startowym Tomcat po uruchomieniu java, aby sprawdzić, jakie są używane opcje. – CrazyCoder

Odpowiedz

3

Problem został catalina.sh dzwoni setenv.sh których zachodziło JAVA_OPTS tak:

JAVA_OPTS="$JAVA_OPTS -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000" 

Nie wiem, skąd pochodzi ten setenv.sh z tego, że instalator tomcat dla współpracownika nie miał tego pliku.

Na razie skonfigurowałem debugowanie IntelliJ do użycia catalina_idea_debug.sh, które jest po prostu kopią catalina.sh minus wywołanie setenv.sh. Działa teraz dobrze.

+0

fyi, setenv.sh jest proponowanym sposobem według catalina.sh w celu uwzględnienia tam właściwości. Niemniej jednak, jak zauważyłeś, używanie setenv.sh nie działa z Idea. – gpol

+0

Też miałem ten sam problem w Intellij 15 z konfiguracją uruchamiania tomcat na ** Windows **. Właśnie zmieniłem nazwę pliku ** setenv.bat ** na setenv.bat.old, a następnie ponownie uruchomiłem konfigurację i teraz działa debugowanie. – Brod

Powiązane problemy