microsoft / microsoft/vscode-java-debug

debug maven app locally does not work with the java debug extension

Offen
#1,525 2 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

ai-triaged question
Vorherrschende Sprache
TypeScript
Sterne
591
Forks
429
Ø Merge
1 T. 9 Std.
Gemergte PRs (30 T.)
19

Beschreibung

Hi, we have a maven app, which is deployed to the mainframe, and we building our own application to fit Java Maven apps into our vscode workflow.

So we need to debug java maven apps for quarkus (maybe open liberty) and for mainframe batch.

To Debug the app local i used this minimal snippet which is working fine in eclipse...

@Dependent
public class BGZ50FileCreator extends JhapBatchApp {

    private final static String appName = "VOR_BGZ50";
    @Override
    public String getAppName() {
        return appName;
    }

    @Override
    public void run() throws CheckedBusinessException {
        System.out.println("Hello World");
    }   
}

In Vscode this exception is thrown before "Hello World" is printed

Unable to invoke public void  at.mysecretlib.init()  
...
Caused by: java.lang.reflect.InvocationTargetException
...
Caused by: java.lang.NullPointerException

Image

When comparing eclipse and vscode command for debug:

eclipse:

C:\mypath\jdk\1.8.0.262-3.b10.redhat.windows.x86_64\bin\javaw.exe -agentlib:jdwp=transport=dt_socket,suspend=y,address=localhost:62642 "-javaagent:C:\mypath2\configuration\org.eclipse.osgi\424\0.cp\lib\javaagent-shaded.jar" -Dfile.encoding=UTF-8 -classpath
"C:\mymaven\at\mytool\mytool-batch\2.171.6\mytool-batch-2.171.6.jar;
....
at.mytoolx.batch.mytoolAppLoader VOR_BGZ50

vscode:

c:\mypath\jdk\1.8.0.262-3.b10.redhat.windows.x86_64\bin\javaw.exe' '-agentlib:jdwp=transport=dt_socket,server=n,suspend=y,address=localhost:50209' '-cp' 'C:\myrepo\myproject\target\classes; C:\mymave\at\mytool\mytool-batch\2.171.6\mytool-batch-2.171.6.jar;
...
'at.mytoolx.batch.mytoolAppLoader' 'VOR_BGZ50'

The noteable differences are the missing javaagent, the additional "server=n" and an additional entry as first argument in classpath.

launch.config (in workspace file)

    "configurations": [
      {
        "type": "java",
        "name": "Java",
        "request": "launch",
        "mainClass": "at.mytoolx.batch.mytoolAppLoader",
        "projectName": "myproject",
        "args": "VOR_BGZ50",
        "javaExec": "c:\\mypath\\jdk\\1.8.0.262-3.b10.redhat.windows.x86_64\\bin\\javaw.exe",
        "shortenCommandLine": "none",
      }

Thanks!

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne mit der workspace launch.config für mainClass at.mytoolx.batch.mytoolAppLoader und vergleiche die im Bericht angezeigten Java-Befehlszeilen von Eclipse und VS Code. Reproduziere den lokalen Debug-Start mit dem angegebenen VOR_BGZ50-Argument und untersuche anschließend, wie die Java debug extension den classpath und die Debug-Optionen erstellt. Als abgeschlossen gilt die Aufgabe, wenn die Anwendung in VS Code ohne die gemeldete Initialisierungsausnahme "Hello World" erreicht.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
java, vscode
Bereich
devtools
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
30/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.