Saltar al contenido

clases javax.annotation y Java 11 JDK

Solución:

Al migrar las 3 versiones anteriores de Java, lo primero que se debe considerar es actualizar todas las dependencias principales.

maven-compiler-plugin -> la versión actual es 3.8.1,

2.5.1 tiene 7 años.

Intente lo siguiente para resolver este error:

java.lang.NoSuchMethodError: javax.annotation.Resource.lookup () Ljava / lang / String;

Mantenga la dependencia:

<dependency>
    <groupId>javax.annotation</groupId>
    <artifactId>javax.annotation-api</artifactId>
    <version>1.3.1</version>
</dependency>

Y agréguelo explícitamente como un módulo:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.8.1</version>
    <configuration>
        <release>11</release>
        <compilerArgs>
            <arg>--add-modules</arg>
            <arg>java.xml.ws.annotation</arg>
        </compilerArgs>
    </configuration>
</plugin>

Para mí, el problema estaba en un conflicto entre libs: javax.annotations-api ^ 1.3.2 y jsr250-api: 1.0. Hay un [email protected] anotación en jsr250-api SIN método lookup ()! En algunos entornos de ejecución, @Resorse de jsr250 se cargó primero, en otros, javax.annotations-api’s. En el primer caso se produjo mi error:

Ha fallado el posprocesamiento de la definición de frijol combinada; la excepción anidada es java.lang.NoSuchMethodError: javax.annotation.Resource.lookup () Ljava / lang / String;

Solución: deshacerse de una de las bibliotecas mediante la exclusión de maven.

Tuve el mismo problema.

Agregué estas líneas, con éxito:

<build>
...
        <extensions>
            <!-- Prevents this error, with JDK 13: -->
            <!-- NoSuchMethodError: 'java.lang.String javax.annotation.Resource.lookup()' -->
            <extension>
                <groupId>javax.annotation</groupId>
                <artifactId>javax.annotation-api</artifactId>
                <version>1.3.2</version>
            </extension>
            <extension>
                <groupId>javax.annotation</groupId>
                <artifactId>jsr250-api</artifactId>
                <version>1.0</version>
            </extension>
        </extensions>
</build>
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *