Saltar al contenido

Maven + Spring Boot: se encontraron varias apariciones de org.json.JSONObject en la ruta de clases:

Agradecemos tu apoyo para compartir nuestros enunciados con relación a las ciencias informáticas.

Solución:

Agregar debajo

 spring-boot-starter-test
    test

La siguiente exclusión:

 test
    
        
            com.vaadin.external.google
            android-json
        
    

Del mismo modo, para proyectos de Gradle:

testCompile("org.springframework.boot:spring-boot-starter-test") 
    exclude group: "com.vaadin.external.google", module:"android-json"

Fondo:
org.json funciona muy bien, pero tiene una cláusula de licencia que a algunas personas no les gusta (“El software se utilizará para el bien, no para el mal”). Así que Vaadin quería usar la biblioteca, pero no podía estar seguro de que algún día no la usarían para el mal. En cambio, reimplementaron la interfaz, publicaron android-json y lo usó como un reemplazo directo para org.json. Otros empezaron a usar android-json así como para que ellos tampoco estén obligados por el requisito de no usar su software para el mal.

Esta es una buena solución, excepto que cuando las dos bibliotecas están en el classpath, chocan.

Solución:
Si recibe este error debido a dependencias transitivas en conflicto, lo mejor que puede hacer es excluir cualquiera de las dependencias transitivas de Vaadin. android-json librería (traído por Spring), o excluir el org.json biblioteca (traída por otra dependencia). La versión de Vaadin pretende ser una implementación idéntica, pero hay diferencias sutiles.

si estás usando org.json en su código y está en conflicto con la dependencia Vaadin de Spring, entonces recomendaría probar open-json. Es un puerto de la reimplementación de Vaadin de org.jsonpero cambiaron los paquetes para que no tengas ningún conflicto con org.json:json o com.vaadin.external.google:android-json

https://github.com/openjson/openjson

Agregar dependencia gradle:

    implementation('com.github.openjson:openjson:1.0.12')

O en Maven:

    
        com.github.openjson
        openjson
        1.0.12
    

A continuación, actualice las importaciones que estaban utilizando org.json clases

Agregue la siguiente línea para proyectos gradle.

testCompile('org.springframework.boot:spring-boot-starter-test')
        exclude group: "com.vaadin.external.google", module:"android-json"

Valoraciones y comentarios

Nos encantaría que puedieras difundir este artículo si te fue útil.

¡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 *