solucion org not found java maven noclassdeffounderror classnotfoundexception

not - java lang noclassdeffounderror org json jsonobject



Java ClassNotFoundException con dependencia maven (4)

NoClassDefFoundError excepciones ClassNotFoundException y NoClassDefFoundError cuando intento ejecutar mi aplicación usando una dependencia definida por maven.

Agregué mi dependencia de maven para el contenedor en cuestión a mi archivo pom.xml con la siguiente declaración:

<dependency> <groupId>spy</groupId> <artifactId>spymemcached</artifactId> <version>2.8.4</version> <scope>provided</scope> </dependency>

Esto agregó el archivo JAR relevante a mi carpeta Maven Dependencies en Eclipse. Puedo acceder a las clases en código pero obtengo las excepciones mencionadas una vez que ejecuto la aplicación.

El jar se hace referencia en mi ruta de compilación Java bajo las dependencias de Maven:

Mi repositorio maven local se agrega a mi classpath:

Cuando intento ejecutar la aplicación, obtengo las dos excepciones siguientes:

java.lang.NoClassDefFoundError: Lnet/spy/memcached/MemcachedClient; java.lang.ClassNotFoundException: net.spy.memcached.MemcachedClient

¿Alguien puede señalarme en la dirección correcta?


Agregar Dependencia a continuación, resolverá el problema.

<!-- https://mvnrepository.com/artifact/info.cukes/cucumber-jvm-deps --> <dependency> <groupId>info.cukes</groupId> <artifactId>cucumber-jvm-deps</artifactId> <version>1.0.3</version> <scope>provided</scope> </dependency>


Cambio provided para compile

Previsto

Esto es muy similar a la compilación, pero indica que espera que el JDK o un contenedor proporcione la dependencia en tiempo de ejecución. Por ejemplo, al crear una aplicación web para Java Enterprise Edition, debe establecer la dependencia de la API de Servlet y las API de Java EE relacionadas en el alcance proporcionado porque el contenedor web proporciona esas clases. Este alcance solo está disponible en el classpath de compilación y prueba, y no es transitivo.


Estaba enfrentando el mismo problema pero no tenía la etiqueta definida en mi POM, siempre funcionaba bien hasta que un día, de repente, comenzó a darme ese error en mi máquina local sin ninguna razón, la dependencia se configuró correctamente en el POM y el jar estaba presente en el repositorio maven local.

Intenté limpiar el proyecto y actualizar el proyecto maven pero nada, ninguna de las otras soluciones sugeridas en otras publicaciones funcionó para mí tampoco.

Finalmente pude resolverlo yendo a la pestaña de servidores -> clic derecho en Tomcat v8.0 -> buscar ubicación de despliegue

esto debería llevarte a una carpeta temporal como

.metadata.plugins / org.eclipse.wst.server.core / tmp1 / wtpwebapps

luego navegas a la carpeta del proyecto -> WEB-INF -> lib -> aquí descubrí que faltaba el jar de la biblioteca que estaba dando el error, así que simplemente lo copié de .m2 / repository

Reinicié el servidor y comenzó a funcionar como siempre de nuevo.

Espero que esto ayude a un cuerpo que enfrenta el mismo problema.


<scope>provided</scope>

El alcance "provisto" implica que las dependencias deben estar disponibles solo durante la fase de compilación y estarán disponibles en cualquier otro lugar durante el tiempo de ejecución y Maven no debería empaquetarlas con el resto de las jarras y clases de la aplicación actual.

Su dependencia no parece ser del alcance "provisto". Elimine ese ámbito de la definición de dependencia y los archivos jar estarán presentes en su paquete jar / war / ear.