es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que el problema está relacionado con el uso de ReactorDebugAgent para autoasociarse al proceso JVM actual. Aquí hay algunas posibles soluciones:

    1. Asegúrese de que el JDK utilizado para ejecutar la aplicación sea JDK 11 y no solo JRE 11. Verifique la configuración de “Project SDK” y “Project language level” en IntelliJ IDEA para asegurarse de que estén configurados en JDK 11.
    2. 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.

    3. 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.

    4. 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!

Comments are closed.