Mittwoch, Januar 22, 2020

Tomcat Autostart ignorieren jpda option für debug

Ich bin versucht zu laufen, Tomcat 7 im debug-Modus. Wenn ich Typ ./catalina.sh jpda start tomcat läuft, als ob die jpda-option ist nicht da-und Ausgänge:

Michaels-MacBook-Pro:bin clairewilgar$ ./catalina.sh jpda start
Using CATALINA_BASE:   /Users/clairewilgar/Downloads/apache-tomcat-7.0.42-MIS
Using CATALINA_HOME:   /Users/clairewilgar/Downloads/apache-tomcat-7.0.42-MIS
Using CATALINA_TMPDIR: /Users/clairewilgar/Downloads/apache-tomcat-7.0.42-MIS/temp
Using JRE_HOME:        /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Using CLASSPATH:       /Users/clairewilgar/Downloads/apache-tomcat-7.0.42-MIS/bin/bootstrap.jar:/Users/clairewilgar/Downloads/apache-tomcat-7.0.42-MIS/bin/tomcat-juli.jar

und ändert nichts an meiner CATALINA_OPTS oder nichts. Wenn ich versuche eine Verbindung über Eclipse bekomme ich die Fehlermeldung

‚Start workflow‘ hat ein problem festgestellt. Fehler beim herstellen einer Verbindung zu remote-VM. Verbindung verweigert.

Ich habe versucht, die änderung der port jpda port 8001 bis gar keinen Erfolg, ich habe versucht, die Deklaration der JPDA-Optionen im terminal, vor dem Aufruf catalina.sh aber das macht keinen Unterschied. Meine catalina.sh JPDA-Linien sind wie folgt:

if [ "$1" = "jpda" ] ; then
  if [ -z "$JPDA_TRANSPORT" ]; then
    JPDA_TRANSPORT="dt_socket"
  fi
  if [ -z "$JPDA_ADDRESS" ]; then
    JPDA_ADDRESS="8000"
  fi
  if [ -z "$JPDA_SUSPEND" ]; then
    JPDA_SUSPEND="n"
  fi
  if [ -z "$JPDA_OPTS" ]; then
    JPDA_OPTS="-agentlib:jdwp=transport=$JPDA_TRANSPORT,address=$JPDA_ADDRESS,server=y,suspend=$JPDA_SUSPEND"
  fi
  CATALINA_OPTS="$CATALINA_OPTS $JPDA_OPTS"
  shift
fi

Gibt es andere Gründe, warum JPDA möglicherweise nicht ausgeführt? Ich bin mit OSX (Mountain Lion), ob es etwas gibt damit zu, dass ich vielleicht vergessen habe. Vielen Dank im Voraus.

EDIT: Meine catalina.die out-Datei zum ausführen ./catalina.sh jpda start ist bei http://pastebin.com/Z4GSvckr

InformationsquelleAutor clairebones | 2013-09-10

5 Kommentare

  1. 6

    Gleiche Problem, wenn Sie starten es von startup.sh? Denken Sie daran, die Sie haben könnten, zu Bearbeiten startup.sh zu machen, rufen Sie catalina.sh mit der jpda parameter.

    Haben Sie versucht, setzen Sie die Variablen manuell? Ich hatte nie dieses Problem an meinem Ende, aber ich Neige dazu, etwas zu tun, wie beschrieben, in diesem wiki.

    Auch, ob die Variablen bereits gesetzt sind, in Ihrem Umfeld, Sie werden nicht wieder in den catalina.sh Skript (-z).

    Könnte man auch versuchen setup.sh im bin Ordner mit:

    JPDA_TRANSPORT="dt_socket"
    JPDA_ADDRESS="8000"
    JPDA_SUSPEND="n"
    JPDA_OPTS="-agentlib:jdwp=transport=$JPDA_TRANSPORT,address=$JPDA_ADDRESS,server=y,suspend=$JPDA_SUSPEND"
    CATALINA_OPTS="$CATALINA_OPTS $JPDA_OPTS"

    Mit dieser änderung können Sie einfach starten Sie tomcat verwenden startup.sh start.

    • Dasselbe Problem ja, hatte ich angeschaut, die wiki zuvor, aber es scheint nicht zu keinen Unterschied machen. Habe versucht die Variablen auch manuell, aber irgendwie immer noch ignoriert es und läuft einfach normal Tomcat.
    • Was macht Ihr logs/catalina.out sagen?
    • Es scheint genau das gleiche wie es wäre, wenn ich nicht aufrufen jpda, erwähnt es nicht oder jdwp und keine Fehler. Siehe hier: pastebin.com/Z4GSvckr
    • Ich habe gerade heruntergeladen tomcat 7.0.42 (Windows-x86 ausgeführt in cygwin) und es funktioniert gut. Beide mit jpda start und die Einstellung des env-Variablen in setup.sh und starten Sie es einfach mit startup.sh start. Hat einer Vanille-tomcat für Sie arbeiten? Nichts zusätzliches bereitgestellt.
    • Hmm, Vanille (keine KRIEGE oder nichts) setzt immer Zeit, aber er ruft nicht an jpda entweder… ich habe in der firewall und da gab es nichts zu stoppen, also nicht sicher was es sonst sein könnte, es zu tun.
    • Sie könnten versuchen, fügen Sie echo $CATALINA_OPTS vor dem Start der JVM in catalina.sh (um Zeile 386 glaub ich) und sehen, was es sagt?
    • Meine CATALINA_OPTS sagt nur -Dorg.apache.el.parser.SKIP_IDENTIFIER_CHECK=true
    • Ich würde für die setenv.sh Lösung und setze meine Variablen in der es, sofern Sie es getestet? Es ist wirklich seltsam, die Sie nicht bekommen, die JPDA-option in die Ausgabe. Leider habe ich keinen Zugriff auf einen mac zu testen, diese auf.
    • Ich habe gerade versucht, mit setenv und das scheint nicht zu funktionieren. Lege ich noch die Variablen in meinem bash_profile an einer Stelle um zu sehen, ob das hat geholfen.
    • Könnten Sie das, was Sie schrieb, und auch, wo Sie es sagen? Ich bin running out of Ideen. Ist wirklich etwas faul in Ihrer Umgebung ich glaube. 🙂
    • Es enthält einfach #Catalina CATALINA_OPTS=“$CATALINA_OPTS -Dorg.apache.el.parser.SKIP_IDENTIFIER_CHECK=true“ TOMCAT_HOME=“/Users/clairewilgar/Downloads/apache-tomcat-7.0.42-MIS/bin/“ # Eclipse Debuggen JPDA_TRANSPORT=dt_socket, export JPDA_TRANSPORT JPDA_ADDRESS=8000; export JPDA_ADDRESS und ist im bin-Ordner neben catalina.sh. An diesem Punkt habe ich keine Idee warum es nicht funktioniert…
    • Ich habe meine setup.sh in der Antwort, da es einfacher zu Lesen.
    • Das hat nicht funktioniert… immer Noch kein jdpa/jdwp erwähnen und eclipse immer noch nicht verbinden kann.
    • Dieser thread wurde auch nie gelöst, stackoverflow.com/questions/13068046/… ich bin leider die Ideen aus, ohne ein test-system.

  2. 1

    Kann es sich um eine IPv4 vs IPv6-Problem.

    netstat -an | grep 8000

    Ich hatte mal ein problem wo ich es konnte keine Verbindung zu „localhost“ port 13306, konnte aber eine Verbindung zu „127.0.0.1“ port 13306

    localhost zugeordnet ist, um eine IPv6-Adresse, während der Prozess überwacht wurde, um eine IPv4-Adresse

  3. 0

    können Sie ändern Sie diese Zeile in die catlina.sh:

    if [ -z "$JPDA_SUSPEND" ]; then
        JPDA_SUSPEND="n"
    fi

    zu :

    if [ -z "$JPDA_SUSPEND" ]; then
        JPDA_SUSPEND="y"
    fi

    oder setzen der env-var „JPDA_SUSPEND“ auf „y“ – vor dem Aufruf der catalina.sh

  4. 0

    Ich hatte das gleiche problem, es stellte sich heraus, meine startup.sh die Datei enthielt die folgenden Zeilen:

    exec "$PRGDIR"/"$EXECUTABLE" start "[email protected]"

    Daher Befehl ./startup.sh jpda start geschickt wurde catalina.sh als start jpda start und deshalb debugging-Optionen wurden ignoriert, so musste ich ändern Sie diese Zeile zu

    exec "$PRGDIR"/"$EXECUTABLE" "[email protected]"

    Grüße,
    Borys

Kostenlose Online-Tests