如何使用Visual Studio代码调试java dropwizard应用程序

如何使用Visual Studio代码调试java dropwizard应用程序,java,debugging,visual-studio-code,dropwizard,Java,Debugging,Visual Studio Code,Dropwizard,设置Visual Studio代码以使用Java扩展包调试Java Dropwizard应用程序还需要哪些其他步骤?我遵循官方vscode java调试页面上的说明: 针对位于此处的官方dropwizard示例应用程序: 当我在vscode中设置默认lauch配置文件并尝试运行它时,调试控制台将打印以下消息: dropwizard应用程序的启动方式似乎有一些根本性的不同,导致默认vscode调试设置无法工作。我猜需要一些定制的启动任务,但是我很难找到其他对dropwizard应用程序使用vs

设置Visual Studio代码以使用Java扩展包调试Java Dropwizard应用程序还需要哪些其他步骤?我遵循官方vscode java调试页面上的说明:

针对位于此处的官方dropwizard示例应用程序:

当我在vscode中设置默认lauch配置文件并尝试运行它时,调试控制台将打印以下消息:

dropwizard应用程序的启动方式似乎有一些根本性的不同,导致默认vscode调试设置无法工作。我猜需要一些定制的启动任务,但是我很难找到其他对dropwizard应用程序使用vscode的人

dropwizard应用程序本身使用wiki中的指令成功运行-我无法使用默认的vscode调试指令进行调试。我已经使用vscode调试说明页面上提供的相同步骤成功调试了另一个java应用程序。这是一个在第一次尝试(Sprint启动)中完美运行的项目:


更新

(注意:我仍然对学习如何连接vscode来启动应用程序感兴趣,这样我也可以做一些事情,比如调试应用程序初始化)

我找到了一种启动应用程序的方法,您可以使用默认的vscode启动配置连接到正在运行的进程。以下是我偶然发现的wiki页面,它展示了如何使用mvnDebug:

维基页面上的说明几乎就是我们需要的。改为执行以下操作(假设您已经按照上面vscode wiki中针对java的默认launch.json文件的说明进行了操作):

  • 更改launch.json,以便attach命令使用端口8000(mvnDebug的默认端口)
  • 在终端中,使用以下命令启动应用程序:
    mvnDebug exec:java-Dexec.mainClass=“com.example.helloworld.HelloWorldApplication”-Dexec.args=“server example.yml”
  • 运行vscode附加命令
  • launch.json应该有如下内容:

    {
        // Use IntelliSense to learn about possible attributes.
        // Hover to view descriptions of existing attributes.
        // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
        "version": "0.2.0",
        "configurations": [
            {
                "type": "java",
                "name": "Debug (Launch)-HelloWorldApplication<dropwizard-example>",
                "request": "launch",
                "cwd": "${workspaceFolder}",
                "console": "internalConsole",
                "stopOnEntry": false,
                "mainClass": "com.example.helloworld.HelloWorldApplication",
                "projectName": "dropwizard-example",
                "args": ""
            },
            {
                "type": "java",
                "name": "Debug (Attach)",
                "request": "attach",
                "hostName": "localhost",
                "port": 8000
            }
        ]
    }
    
    {
    //使用IntelliSense了解可能的属性。
    //悬停以查看现有属性的描述。
    //有关更多信息,请访问:https://go.microsoft.com/fwlink/?linkid=830387
    “版本”:“0.2.0”,
    “配置”:[
    {
    “类型”:“java”,
    “名称”:“调试(启动)-HelloWorldApplication”,
    “请求”:“启动”,
    “cwd”:“${workspaceFolder}”,
    “控制台”:“内部控制台”,
    “stopOnEntry”:false,
    “mainClass”:“com.example.helloworld.helloworld应用程序”,
    “项目名称”:“dropwizard示例”,
    “args”:”
    },
    {
    “类型”:“java”,
    “名称”:“调试(附加)”,
    “请求”:“附上”,
    “主机名”:“本地主机”,
    “港口”:8000
    }
    ]
    }
    
    然后,您应该能够像以前一样点击应用程序,但现在可以设置断点:


    并设置断点

    添加另一个配置以启动配置(launch.json in.vscode),如下所示-

    {
                "type": "java",
                "name": "Debug (Launch) with Arguments Prompt",
                "request": "launch",
                "mainClass": "{mainClass}",
                "args": "server config.yml"
    }
    
    {
                "type": "java",
                "name": "Debug (Launch) with Arguments Prompt",
                "request": "launch",
                "mainClass": "{mainClass}",
                "args": "server config.yml"
    }