I'm trying to instantiate a static nested class using a ClassPathXmlApplicationContext, but I get a ClassNotFoundException. Here's my config file:
And here's my Java code:Code:<?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="inner" class="test.Main.Inner"/> </beans>
And here's the error:Code:package test; import org.springframework.context.support.ClassPathXmlApplicationContext; public class Main { public static void main(String[] args) { new ClassPathXmlApplicationContext("test/my-config.xml"); } public static class Inner {} }
Is this a bug or a feature?Code:17/07/2007 15:34:11 org.springframework.context.support.AbstractApplicationContext refresh INFO: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@cdedfd: display name [org.springframework.context.support.ClassPathXmlApplicationContext@cdedfd]; startup date [Tue Jul 17 15:34:11 EST 2007]; root of context hierarchy 17/07/2007 15:34:11 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions INFO: Loading XML bean definitions from class path resource [test/my-config.xml] 17/07/2007 15:34:12 org.springframework.context.support.AbstractApplicationContext refresh INFO: Bean factory for application context [org.springframework.context.support.ClassPathXmlApplicationContext@cdedfd]: org.springframework.beans.factory.support.DefaultListableBeanFactory@1bc82e7 17/07/2007 15:34:12 org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons INFO: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@1bc82e7: defining beans [inner]; root of factory hierarchy 17/07/2007 15:34:12 org.springframework.beans.factory.support.DefaultSingletonBeanRegistry destroySingletons INFO: Destroying singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@1bc82e7: defining beans [inner]; root of factory hierarchy Exception in thread "main" org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [test.Main.Inner] for bean with name 'inner' defined in class path resource [test/my-config.xml]; nested exception is java.lang.ClassNotFoundException: test.Main.Inner Caused by: java.lang.ClassNotFoundException: test.Main.Inner at java.net.URLClassLoader$1.run(URLClassLoader.java:200) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268) at java.lang.ClassLoader.loadClass(ClassLoader.java:251) at org.springframework.util.ClassUtils.forName(ClassUtils.java:201) at org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:325) at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1033) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:274) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:360) at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:91) at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:75) at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:65) at test.Main.main(Main.java:19)
I'm using Spring 2.0.4, FWIW.
Thanks for any help.


Reply With Quote

