microsoft / microsoft/vscode-java-debug
debug maven app locally does not work with the java debug extension
Dieses Issue hat noch niemand übernommen.
- 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
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
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Ö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