Hi,
i am starting with spring and i cannot put it to work into my servlet container (IBM WSAD 5).
The sample is as follows:
- i've added the listener to the web.xml config file:
- the bean is quite simple:Code:<listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>
- the spring config file at WEB-INF/applicationContext.xml:Code:package test; public class BeanTest { private String field; public String getField() { return field; } public void setField(String field) { this.field = field; } }
- the servlet get method: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="myBean" class="test.BeanTest"> <property name="field"><value>testFieldValue</value></property> </bean> </beans>
When the container starts it throws the following messages:Code:public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { WebApplicationContext wac = WebApplicationContextUtils.getWebApplicationContext(getServletContext()); BeanTest bt = (BeanTest) wac.getBean("myBean"); response.setContentType("text/plain"); response.getWriter().println(bt.getField()); }
Error registering bean with name 'myBean' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Bean class [test.BeanTest] not found; nested exception is java.lang.ClassNotFoundException: test.BeanTest java.lang.ClassNotFoundException: test.BeanTest
The stackTrace:
Also, i've tried to find the clas by name Class.forName("test.BeanTest"); and it works so the class is there...Code:[21/04/05 12:23:59:246 CEST] 1c7de748 ContextLoader I org.springframework.web.context.ContextLoader Root WebApplicationContext: initialization started [21/04/05 12:23:59:246 CEST] 1c7de748 WebGroup I SRVE0180I: [SpringWebTest] [/SpringWebTest] [Servlet.LOG]: Loading Spring root WebApplicationContext [21/04/05 12:23:59:871 CEST] 1c7de748 XmlBeanDefini I org.springframework.beans.factory.xml.XmlBeanDefinitionReader Loading XML bean definitions from ServletContext resource [/WEB-INF/applicationContext.xml] [21/04/05 12:24:00:090 CEST] 1c7de748 ContextLoader E org.springframework.web.context.ContextLoader Context initialization failed [21/04/05 12:24:00:105 CEST] 1c7de748 ContextLoader E org.springframework.web.context.ContextLoader TRAS0014I: The following Exception was caught: org.springframework.beans.factory.BeanDefinitionStoreException: Error registering bean with name 'myBean' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Bean class [test.BeanTest] not found; nested exception is java.lang.ClassNotFoundException: test.BeanTest java.lang.ClassNotFoundException: test.BeanTest at java.net.URLClassLoader.findClass(URLClassLoader.java:240) at com.ibm.ws.bootstrap.ExtClassLoader.findClass(ExtClassLoader.java:38) at java.lang.ClassLoader.loadClass(ClassLoader.java:516) at java.lang.ClassLoader.loadClass(ClassLoader.java:448) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:220) at org.springframework.util.ClassUtils.forName(ClassUtils.java:84) at org.springframework.beans.factory.support.BeanDefinitionReaderUtils.createBeanDefinition(BeanDefinitionReaderUtils.java:61) at org.springframework.beans.factory.xml.DefaultXmlBeanDefinitionParser.parseBeanDefinitionElement(DefaultXmlBeanDefinitionParser.java:331) at org.springframework.beans.factory.xml.DefaultXmlBeanDefinitionParser.parseBeanDefinitionElement(DefaultXmlBeanDefinitionParser.java:299) at org.springframework.beans.factory.xml.DefaultXmlBeanDefinitionParser.parseBeanDefinitions(DefaultXmlBeanDefinitionParser.java:236) at org.springframework.beans.factory.xml.DefaultXmlBeanDefinitionParser.registerBeanDefinitions(DefaultXmlBeanDefinitionParser.java:185) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:188) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:146) at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:99) at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:114) at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:82) at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:87) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:264) at org.springframework.web.context.support.AbstractRefreshableWebApplicationContext.refresh(AbstractRefreshableWebApplicationContext.java:131) at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:230) at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:156) at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:48) at com.ibm.ws.webcontainer.srt.WebGroup.notifyServletContextCreated(WebGroup.java:1358) at com.ibm.ws.webcontainer.srt.WebGroup.init(WebGroup.java:240) at com.ibm.ws.webcontainer.WebContainer.addWebApplication(WebContainer.java:950) at com.ibm.ws.runtime.component.WebContainerImpl.install(WebContainerImpl.java:133) at com.ibm.ws.runtime.component.WebContainerImpl.start(WebContainerImpl.java:360) at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:401) at com.ibm.ws.runtime.component.DeployedApplicationImpl.fireDeployedObjectStart(DeployedApplicationImpl.java:743) at com.ibm.ws.runtime.component.DeployedModuleImpl.start(DeployedModuleImpl.java:337) at com.ibm.ws.runtime.component.DeployedApplicationImpl.start(DeployedApplicationImpl.java:531) at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:254) at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:232) at com.ibm.ws.runtime.component.ContainerImpl.startComponents(ContainerImpl.java:343) at com.ibm.ws.runtime.component.ContainerImpl.start(ContainerImpl.java:234) at com.ibm.ws.runtime.component.ApplicationServerImpl.start(ApplicationServerImpl.java:117) at com.ibm.ws.runtime.component.ContainerImpl.startComponents(ContainerImpl.java:343) at com.ibm.ws.runtime.component.ContainerImpl.start(ContainerImpl.java:234) at com.ibm.ws.runtime.component.ServerImpl.start(ServerImpl.java:182) at com.ibm.ws.runtime.WsServer.start(WsServer.java:135) at com.ibm.ws.runtime.WsServer.main(WsServer.java:232) at java.lang.reflect.Method.invoke(Native Method) at com.ibm.ws.bootstrap.WSLauncher.main(WSLauncher.java:94) at com.ibm.etools.websphere.tools.runner.api.ServerRunnerV5$1.run(ServerRunnerV5.java:97) . org.springframework.beans.factory.BeanDefinitionStoreException: Error registering bean with name 'myBean' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Bean class [test.BeanTest] not found; nested exception is java.lang.ClassNotFoundException: test.BeanTest java.lang.ClassNotFoundException: test.BeanTest at java.net.URLClassLoader.findClass(URLClassLoader.java:240) at com.ibm.ws.bootstrap.ExtClassLoader.findClass(ExtClassLoader.java:38) at java.lang.ClassLoader.loadClass(ClassLoader.java:516) at java.lang.ClassLoader.loadClass(ClassLoader.java:448) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:220) at org.springframework.util.ClassUtils.forName(ClassUtils.java:84) at org.springframework.beans.factory.support.BeanDefinitionReaderUtils.createBeanDefinition(BeanDefinitionReaderUtils.java:61) at org.springframework.beans.factory.xml.DefaultXmlBeanDefinitionParser.parseBeanDefinitionElement(DefaultXmlBeanDefinitionParser.java:331) at org.springframework.beans.factory.xml.DefaultXmlBeanDefinitionParser.parseBeanDefinitionElement(DefaultXmlBeanDefinitionParser.java:299) at org.springframework.beans.factory.xml.DefaultXmlBeanDefinitionParser.parseBeanDefinitions(DefaultXmlBeanDefinitionParser.java:236) at org.springframework.beans.factory.xml.DefaultXmlBeanDefinitionParser.registerBeanDefinitions(DefaultXmlBeanDefinitionParser.java:185) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:188) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:146) at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:99) at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:114) at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:82) at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:87) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:264) at org.springframework.web.context.support.AbstractRefreshableWebApplicationContext.refresh(AbstractRefreshableWebApplicationContext.java:131) at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:230) at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:156) at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:48) at com.ibm.ws.webcontainer.srt.WebGroup.notifyServletContextCreated(WebGroup.java:1358) at com.ibm.ws.webcontainer.srt.WebGroup.init(WebGroup.java:240) at com.ibm.ws.webcontainer.WebContainer.addWebApplication(WebContainer.java:950) at com.ibm.ws.runtime.component.WebContainerImpl.install(WebContainerImpl.java:133) at com.ibm.ws.runtime.component.WebContainerImpl.start(WebContainerImpl.java:360) at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:401) at com.ibm.ws.runtime.component.DeployedApplicationImpl.fireDeployedObjectStart(DeployedApplicationImpl.java:743) at com.ibm.ws.runtime.component.DeployedModuleImpl.start(DeployedModuleImpl.java:337) at com.ibm.ws.runtime.component.DeployedApplicationImpl.start(DeployedApplicationImpl.java:531) at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:254) at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:232) at com.ibm.ws.runtime.component.ContainerImpl.startComponents(ContainerImpl.java:343) at com.ibm.ws.runtime.component.ContainerImpl.start(ContainerImpl.java:234) at com.ibm.ws.runtime.component.ApplicationServerImpl.start(ApplicationServerImpl.java:117) at com.ibm.ws.runtime.component.ContainerImpl.startComponents(ContainerImpl.java:343) at com.ibm.ws.runtime.component.ContainerImpl.start(ContainerImpl.java:234) at com.ibm.ws.runtime.component.ServerImpl.start(ServerImpl.java:182) at com.ibm.ws.runtime.WsServer.start(WsServer.java:135) at com.ibm.ws.runtime.WsServer.main(WsServer.java:232) at java.lang.reflect.Method.invoke(Native Method) at com.ibm.ws.bootstrap.WSLauncher.main(WSLauncher.java:94) at com.ibm.etools.websphere.tools.runner.api.ServerRunnerV5$1.run(ServerRunnerV5.java:97)
The same code runs fine as stand-alone java app:
Well... Thanks!Code:BeanFactory beanFactory = new FileSystemXmlApplicationContext("applicationContext.xml"); BeanTest bt = (BeanTest) beanFactory.getBean("myBean"); System.out.println(bt.getField());


Reply With Quote