Отладка микросервиса java microronaut в визуальном студийном коде - PullRequest
0 голосов
/ 26 сентября 2018

Я создал микросервис с использованием кода microronaut и visual studio.Все работает найти, когда я запускаю сервис, используя gradlew.bat.Я хочу отладить микросервис с использованием кода Visual Studio, но обработка аннотаций не работает.

Когда я отлаживаю сервис в коде Visual Studio, он запускает основной класс и начинает прослушивать порт localhost, но ни один из моих контроллеров не найден. Это моя конфигурация запуска:

{
    "type": "java",
    "name": "Debug (Launch)-Application<keycloak>",
    "request": "launch",
    "cwd": "${workspaceFolder}",
    "console": "internalConsole",
    "stopOnEntry": false,
    "mainClass": "com.test.Application",
    "args": "",
    "projectName": "keycloak"
}

Этомой файл Gradle:

buildscript {
    repositories {
        mavenCentral()
        maven { url "https://plugins.gradle.org/m2/" }
    }
    dependencies {
        classpath "com.github.jengelman.gradle.plugins:shadow:2.0.4"
        classpath "io.spring.gradle:dependency-management-plugin:1.0.5.RELEASE"
        classpath "net.ltgt.gradle:gradle-apt-plugin:0.15"
    }
}

version "0.1"
group "com.test"
apply plugin:"io.spring.dependency-management"
apply plugin:"com.github.johnrengelman.shadow"
apply plugin:"application"
apply plugin:"java"
apply plugin:"net.ltgt.apt-eclipse"
apply plugin:"net.ltgt.apt-idea"
repositories {
    mavenLocal()
    mavenCentral()
    maven { url "https://jcenter.bintray.com" }
}
dependencyManagement {
    imports {
        mavenBom 'io.micronaut:bom:1.0.0.M4'
    }
}
dependencies {
    annotationProcessor "io.micronaut:inject-java"
    compile "io.micronaut:inject"
    compile "io.micronaut:runtime"
    compile "io.micronaut:http-client"
    compile "io.micronaut:http-server-netty"
    compile "be.looorent:keycloak-micronaut-adapter:1.3.0"
    compileOnly "io.micronaut:inject-java"
    runtime "ch.qos.logback:logback-classic:1.2.3"
    testCompile "junit:junit:4.12"
    testCompile "io.micronaut:inject-java"
}
shadowJar {
    mergeServiceFiles()
}
run.jvmArgs('-noverify', '-XX:TieredStopAtLevel=1')
mainClassName = "com.test.Application"
compileJava.options.compilerArgs += '-parameters'
compileTestJava.options.compilerArgs += '-parameters'

Заранее спасибо

1 Ответ

0 голосов
/ 26 сентября 2018

Я не знаю, как вы можете отладить ваше приложение непосредственно в VSC, но наверняка вы можете запустить службу из командной строки и затем присоединить процесс с помощью удаленной отладки.

Для этого следуйте инструкциямследующие шаги:

  1. изменить файл Gradle и использовать удаленную отладку java изменить эту строку: run.jvmArgs('-noverify', '-XX:TieredStopAtLevel=1') на: run.jvmArgs('-noverify', '-XX:TieredStopAtLevel=1','-Xdebug',"-Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n") (обратите внимание на порт 8000 в аргументах jvm)

  2. добавить эту конфигурацию запуска

    { "type": "java", "name": "Debug (Attach)", "request": "attach", "hostName": "localhost", "port": 8000 -> here use the same port you use in the jvm arg }

  3. запустить службу как обычно, используя gradlew из команды

  4. Перейдите к VSC и затем присоедините процесс к порту 8000, используя конфигурацию запуска в шаге 2
...