Search code examples
javaspringapplicationcontext

Spring not able to load class from ApplicationContext xml file


I am getting class not found exception when trying to create new instance of ApplicationContext below. Is there anything I'm missing?

 package com.john;

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

public class Cook {

    /**
     * @param args
     */
    public static void main(String[] args) {


         ApplicationContext ctx = new ClassPathXmlApplicationContext("/resources/test.xml");
         Hamburger hamburger =(Hamburger)ctx.getBean("hamburger");
        hamburger.addMeat();
    }
}

Hamburger class:

 package com.john;

public class Hamburger  {

    void addMeat() {
        System.out.println("Meat is  added");

    }


}

My test.xml in resources package under src folder is :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>
<bean id="hamburger" class="com.john.Hamburger"></bean>

</beans>

The error I get is :

Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
    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)
    ... 8 more

Solution

  • You need to download Apache Commons Logging and add it to your runtime classpath.