PDA

View Full Version : [SOLVED] Spring book code: Error-need help



andrew222
September 13th, 2009, 11:40 PM
Hello,

I am trying to run a program from the source code for the book "Spring Into Action". The program is from ch. 1 and we can download the code from www.manning/walls3

The code is basically an example of using dependency injection.

I recreated the package structure
I added the .xml config files
I included the spring.jar file

I am not getting any 'red block' errors from Eclipse.


When I compile the code, I get a NoClassDefFoundError with this additional output



Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
at org.springframework.util.ClassUtils.<clinit>(ClassUtils.java:72)
at org.springframework.core.io.DefaultResourceLoader.<init>(DefaultResourceLoader.java:52)
at org.springframework.context.support.AbstractApplic ationContext.<init>(AbstractApplicationContext.java:184)
at org.springframework.context.support.AbstractRefres hableApplicationContext.<init>(AbstractRefreshableApplicationContext.java:80)
at org.springframework.context.support.AbstractXmlApp licationContext.<init>(AbstractXmlApplicationContext.java:58)
at org.springframework.context.support.ClassPathXmlAp plicationContext.<init>(ClassPathXmlApplicationContext.java:119)
at org.springframework.context.support.ClassPathXmlAp plicationContext.<init>(ClassPathXmlApplicationContext.java:66)
at com.springinaction.chapter01.knight.KnightApp.main (KnightApp.java:9)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
at java.net.URLClassLoader$1.run(URLClassLoader.java: 200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.j ava:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:3 07)
at sun.misc.Launcher$AppClassLoader.loadClass(Launche r.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:2 52)
at java.lang.ClassLoader.loadClassInternal(ClassLoade r.java:320)
... 8 more


What could I be doing wrong?
What things should i try?


any help is welcome!

myrtle1908
September 14th, 2009, 01:27 AM
You are lacking the Apache Commons Logging package. Download it here http://commons.apache.org/logging/guide.html

andrew222
September 14th, 2009, 01:58 AM
Thank you for that advice, that worked.

I downloaded and added the jar...

I now have a new Error, as seen below and I suspect it may have something to do with AspectJ...




log4j:WARN No appenders could be found for logger (org.springframework.context.support.ClassPathXmlA pplicationContext).
log4j:WARN Please initialize the log4j system properly.
Exception in thread "main" org.springframework.beans.factory.BeanDefinitionSt oreException: Unexpected exception parsing XML document from class path resource [com/springinaction/chapter01/knight/knight.xml]; nested exception is java.lang.NoClassDefFoundError: org/aspectj/lang/JoinPoint
Caused by: java.lang.NoClassDefFoundError: org/aspectj/lang/JoinPoint
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at org.springframework.aop.config.ConfigBeanDefinitio nParser.class$(ConfigBeanDefinitionParser.java:206 )
at org.springframework.aop.config.ConfigBeanDefinitio nParser.getAdviceClass(ConfigBeanDefinitionParser. java:425)
at org.springframework.aop.config.ConfigBeanDefinitio nParser.createAdviceDefinition(ConfigBeanDefinitio nParser.java:379)
at org.springframework.aop.config.ConfigBeanDefinitio nParser.parseAdvice(ConfigBeanDefinitionParser.jav a:346)
at org.springframework.aop.config.ConfigBeanDefinitio nParser.parseAspect(ConfigBeanDefinitionParser.jav a:256)
at org.springframework.aop.config.ConfigBeanDefinitio nParser.parse(ConfigBeanDefinitionParser.java:146)
at org.springframework.beans.factory.xml.NamespaceHan dlerSupport.parse(NamespaceHandlerSupport.java:69)
at org.springframework.beans.factory.xml.BeanDefiniti onParserDelegate.parseCustomElement(BeanDefinition ParserDelegate.java:1123)
at org.springframework.beans.factory.xml.BeanDefiniti onParserDelegate.parseCustomElement(BeanDefinition ParserDelegate.java:1113)
at org.springframework.beans.factory.xml.DefaultBeanD efinitionDocumentReader.parseBeanDefinitions(Defau ltBeanDefinitionDocumentReader.java:133)
at org.springframework.beans.factory.xml.DefaultBeanD efinitionDocumentReader.registerBeanDefinitions(De faultBeanDefinitionDocumentReader.java:90)
at org.springframework.beans.factory.xml.XmlBeanDefin itionReader.registerBeanDefinitions(XmlBeanDefinit ionReader.java:468)
at org.springframework.beans.factory.xml.XmlBeanDefin itionReader.doLoadBeanDefinitions(XmlBeanDefinitio nReader.java:363)
at org.springframework.beans.factory.xml.XmlBeanDefin itionReader.loadBeanDefinitions(XmlBeanDefinitionR eader.java:313)
at org.springframework.beans.factory.xml.XmlBeanDefin itionReader.loadBeanDefinitions(XmlBeanDefinitionR eader.java:290)
at org.springframework.beans.factory.support.Abstract BeanDefinitionReader.loadBeanDefinitions(AbstractB eanDefinitionReader.java:131)
at org.springframework.beans.factory.support.Abstract BeanDefinitionReader.loadBeanDefinitions(AbstractB eanDefinitionReader.java:147)
at org.springframework.beans.factory.support.Abstract BeanDefinitionReader.loadBeanDefinitions(AbstractB eanDefinitionReader.java:173)
at org.springframework.context.support.AbstractXmlApp licationContext.loadBeanDefinitions(AbstractXmlApp licationContext.java:112)
at org.springframework.context.support.AbstractXmlApp licationContext.loadBeanDefinitions(AbstractXmlApp licationContext.java:79)
at org.springframework.context.support.AbstractRefres hableApplicationContext.refreshBeanFactory(Abstrac tRefreshableApplicationContext.java:101)
at org.springframework.context.support.AbstractApplic ationContext.obtainFreshBeanFactory(AbstractApplic ationContext.java:394)
at org.springframework.context.support.AbstractApplic ationContext.refresh(AbstractApplicationContext.ja va:324)
at org.springframework.context.support.ClassPathXmlAp plicationContext.<init>(ClassPathXmlApplicationContext.java:122)
at org.springframework.context.support.ClassPathXmlAp plicationContext.<init>(ClassPathXmlApplicationContext.java:66)
at com.springinaction.chapter01.knight.KnightApp.main (KnightApp.java:9)
Caused by: java.lang.ClassNotFoundException: org.aspectj.lang.JoinPoint
at java.net.URLClassLoader$1.run(URLClassLoader.java: 200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.j ava:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:3 07)
at sun.misc.Launcher$AppClassLoader.loadClass(Launche r.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:2 52)
at java.lang.ClassLoader.loadClassInternal(ClassLoade r.java:320)
... 28 more



Is there anything I have done wrong?
are there any API's missing?

The Eclipse project file of this app is attached to this thread as well....

Any help is welcome...

myrtle1908
September 14th, 2009, 02:11 AM
I know nothing about Spring or AspectJ but whenever you get


java.lang.NoClassDefFoundError

in a Java compile it is because you are lacking some required library. In your case, the compiler cannot find the org/aspectj/lang/JoinPoint class.

Try the findjar site. http://www.findjar.com/class/org/aspectj/lang/JoinPoint.html

andrew222
September 14th, 2009, 02:29 AM
Thank you, I did not know about this site...This solved the problem. It runs with no errors/exceptions...