web-dev-qa-db-fra.com

Spring - Chargement des définitions de bean XML à partir de la ressource de chemin de classe [Beans.xml] - NoClassDefFoundError

Je suis un débutant pour Spring et je faisais référence à ce tutoriel pour mon premier projet Spring. Après avoir suivi toutes les instructions, j’essaie d’exécuter le programme, mais j’ai cette erreur.

May 26, 2015 11:42:45 AM org.springframework.context.support.ClassPathXmlApplicationContext prepareRefresh
INFO: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@31221be2: startup date [Tue May 26 11:42:45 CST 2015]; root of context hierarchy
May 26, 2015 11:42:45 AM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource [Beans.xml]
Exception in thread "main" Java.lang.NoClassDefFoundError: org/springframework/expression/ParserContext
    at org.springframework.context.support.AbstractApplicationContext.prepareBeanFactory(AbstractApplicationContext.Java:553)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.Java:455)
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.Java:139)
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.Java:83)
    at com.tutorialspoint.MainApp.main(MainApp.Java:9)
Caused by: Java.lang.ClassNotFoundException: org.springframework.expression.ParserContext
    at Java.net.URLClassLoader$1.run(Unknown Source)
    at Java.net.URLClassLoader$1.run(Unknown Source)
    at Java.security.AccessController.doPrivileged(Native Method)
    at Java.net.URLClassLoader.findClass(Unknown Source)
    at Java.lang.ClassLoader.loadClass(Unknown Source)
    at Sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at Java.lang.ClassLoader.loadClass(Unknown Source)
    ... 5 more

Toute idée où je me suis trompé. Comme je sais que je suivais correctement le tutoriel.

CODE

package com.tutorialspoint;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class MainApp {
   public static void main(String[] args) {
      ApplicationContext context = 
             new ClassPathXmlApplicationContext("Beans.xml");

      HelloWorld obj = (HelloWorld) context.getBean("helloWorld");

      obj.getMessage();
   }
}

Beans.XML

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

   <bean id="helloWorld" class="com.tutorialspoint.HelloWorld">
       <property name="message" value="Hello World!"/>
   </bean>

</beans>
7
Dishalan2014

Vérifiez si vous avez ajouté tous les fichiers JAR requis dans votre chemin de classe. 

La classe org.springframework.expression.ParserContext se situe à l'intérieur de spring-expresssion-YOUR_SPRING_VERSION.jar. Vérifiez si vous avez ajouté ce fichier jar à classpath.

12

J'avais le même problème. Mais j'ai trouvé mon erreur.

Mon erreur a été, j'ai créé "Beans.xml" à l'intérieur du paquet com.tutorialspont.

La solution pour moi était "Beans.xml" doit être créé directement dans le dossier src.

0
ARNAB PRADHAN