ReactorDebugAgent.init lanza una IllegalStateException.
Estoy actualizando la aplicación de JVM 8 a 11 y tengo un problema. Mi clase SpringBootApplication tiene ReactorDebugAgent.init();
@SpringBootApplication
@Slf4j
@Import(SwaggerCustomConfig.class)
public class RequisitesApplication {
public static void main(String[] args) {
ReactorDebugAgent.init();
SpringApplication.run(RequisitesApplication.class, args);
}
}
Y cuando intenté ejecutar la aplicación, obtuve una excepción IllegalStateException:
Exception in thread "main" java.lang.IllegalStateException: No se pudo autoadjuntar al VM actual utilizando un proceso externo
at reactor.tools.shaded.net.bytebuddy.agent.ByteBuddyAgent.installExternal(ByteBuddyAgent.java:695)
at reactor.tools.shaded.net.bytebuddy.agent.ByteBuddyAgent.install(ByteBuddyAgent.java:626)
at reactor.tools.shaded.net.bytebuddy.agent.ByteBuddyAgent.install(ByteBuddyAgent.java:606)
at reactor.tools.shaded.net.bytebuddy.agent.ByteBuddyAgent.install(ByteBuddyAgent.java:558)
at reactor.tools.shaded.net.bytebuddy.agent.ByteBuddyAgent.install(ByteBuddyAgent.java:535)
at reactor.tools.agent.ReactorDebugAgent.init(ReactorDebugAgent.java:56)
at ru.gazprombank.omni.pcidss.RequisitesApplication.main(RequisitesApplication.java:23)
Bueno, cuando profundizo en la traza de la pila, encontré que esta excepción se captura en la clase ByteBuddyAgent:
if ((new ProcessBuilder(new String[]{System.getProperty("java.home") + File.separatorChar + "bin" + File.separatorChar + (System.getProperty("os.name", "").toLowerCase(Locale.US).contains("windows") ? "java.exe" : "java"), "-cp", classPath.toString(), Attacher.class.getName(), externalAttachment.getVirtualMachineType(), processId, quote(agent.getAbsolutePath()), Boolean.toString(isNative), argument == null ? "" : "=" + argument})).start().waitFor() != 0) {
throw new IllegalStateException("No se pudo autoadjuntar al VM actual utilizando un proceso externo");
}
En la configuración de mi proyecto Intellij Idea, Configuración de plataforma y Configuración de Gradle he instalado y elegido la versión 11.
Por favor, ayúdeme a resolver este problema.
davy.ai
Parece que el problema está relacionado con el uso de ReactorDebugAgent para autoasociarse al proceso JVM actual. Aquí hay algunas posibles soluciones:
Intente actualizar a una versión más reciente de ReactorDebugAgent. Puede verificar la última versión disponible en la página oficial de GitHub de ReactorDebugAgent. Actualice el número de versión en su archivo build.gradle y vuelva a sincronizar su proyecto.
Si el problema persiste, puede intentar desactivar ReactorDebugAgent por ahora. Elimine la línea
ReactorDebugAgent.init()
de su método principal y vea si la aplicación se ejecuta sin errores. Si realmente necesita usar ReactorDebugAgent, pruebe con una versión diferente o póngase en contacto con los mantenedores de la biblioteca para obtener ayuda.Otra posible solución es verificar las opciones de su JVM. A veces, la opción
-XX:+DisableAttachMechanism
en la JVM puede hacer que la autoasociación falle. Intente eliminar esa opción y vea si el problema se resuelve.Espero que estas sugerencias le ayuden a resolver el problema. ¡Buena suerte!