Post new topic   Reply to topic
View previous topic Printable version Log in to check your private messages View next topic
Author Message
untz
Post subject: BeanDefinitionStoreException when running Spring app  PostPosted: Oct 15, 2006 - 08:18 AM
Registered Member
Registered Member


Joined: Jul 10, 2005
Posts: 23

Hello there,

I am experiencing a BeanDefinitionStoreException when I try to invoke a web app that I built using Spring.

My environment:

-JDK 1.5
-Tomcat 5.5.9
-MyEclipse IDE plug-in
-Spring 1.2 Core Libraries (which comes bundled with MyEclipse)
-Spring 1.2 Web Libraries (which comes bundled in with MyEclipse; includes the spring-mvc.jar)
-OS X Tiger

Here's some of my code details:

My applicationContext.xml file (located under the src dir):

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="store" class="com.webshop.util.LineItems">
      <property name="storeName">
         <value>"Sunrise Schwinn"</value>
      </property>
   </bean>
   <bean id="commandLineView" class="com.webshop.view.CommandLineView">
      <property name="store">
         <ref bean="store"/>
      </property>
   </bean>
</beans>   


My webShop-Servlet.xml file (located under WEB-INF ):

Code:

<beans>
   <bean id="store" class="com.webshop.util.LineItems">
      <property name="storeName">
         <value>Sunrise Schwinn</value>
      </property>
   </bean>
   
   <bean id="productsController" class="com.webshop.controller.ProductsController">
      <property name="facade">
         <ref bean="store"/>
      </property>
   </bean>
   
   <bean id="editProductController" class="com.webshop.controller.EditProductController">
      <property name="facade">
         <ref bean="store"/>
      </property>
   </bean>
   
   <bean id="submitProductController" class="com.webshop.controller.SubmitProductController">
      <property name="facade">
         <ref bean="store"/>
      </property>
   </bean>
   
   <bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
      <property name="mappings">
         <props>
            <prop key="/products.products">productsController</prop>
            <prop key="/editProduct.products">editProductController</prop>
            <prop key="/newProduct.products">editProductController</prop>
            <prop key="/submitProduct.products">submitProductController</prop>
         </props>
      </property>
   </bean>
</beans>   


My web.xml file:

Code:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
   xmlns="http://java.sun.com/xml/ns/j2ee"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

   <servlet>
      <servlet-name>webShopApp</servlet-name>
      <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
      <load-on-startup>1</load-on-startup>
   </servlet>
   
   <servlet-mapping>
      <servlet-name>webShopApp</servlet-name>
      <url-pattern>*.products</url-pattern>
   </servlet-mapping>
</web-app>


I use the exploded package option (hot deploy) when deploying the app. The MyEclipse plug-in gracefully places all the right jar files under /WEB-INF/lib.

Now, when I launch Firefox or Safari and point the browser to: http://localhost:8080/webshop

I receive this error message:

Code:

javax.servlet.ServletException: Servlet.init() for servlet webShopApp threw exception
   org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
   org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
   org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
   org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
   org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
   org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
   org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
   java.lang.Thread.run(Thread.java:613)

root cause

org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from ServletContext resource [/WEB-INF/webShopApp-servlet.xml]; nested exception is java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/webShopApp-servlet.xml]
   org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:180)
   org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:148)
   org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:129)
   org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:145)
   org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:126)
   org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:94)
   org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:89)
   org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:262)
   org.springframework.web.context.support.AbstractRefreshableWebApplicationContext.refresh(AbstractRefreshableWebApplicationContext.java:139)
   org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:306)
   org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:251)
   org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:220)
   org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:112)
   javax.servlet.GenericServlet.init(GenericServlet.java:211)
   org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
   org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
   org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
   org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
   org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
   org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
   org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
   java.lang.Thread.run(Thread.java:613)

note   


This error report is really annoying! :banghead:

Any suggestions, help, and tips are greatly appreciated!

Many, many thanks!
 
 View user's profile Send private message Send e-mail Visit poster's website  
Reply with quote Back to top
untz
Post subject:   PostPosted: Oct 15, 2006 - 08:24 AM
Registered Member
Registered Member


Joined: Jul 10, 2005
Posts: 23

I made a mistake in the original posting:

It happens when I point it to http://localhost:8080/webshop/products.products

not

when I point it to http://localhost:8080/webshop (which I posted in the first message).

How can I edit mistakes that I made after post?
 
 View user's profile Send private message Send e-mail Visit poster's website  
Reply with quote Back to top
support-snjeza
Post subject:   PostPosted: Oct 16, 2006 - 01:18 AM
Moderator
Moderator


Joined: Aug 14, 2006
Posts: 72

untz ,

You have chosen the name webShopApp for your servlet and webShop-Servlet.xml for your context file.
Rename webShop-Servlet.xml to webShopApp-servlet.xml.

Regards,
Snjeza
 
 View user's profile Send private message  
Reply with quote Back to top
untz
Post subject:   PostPosted: Oct 20, 2006 - 06:20 AM
Registered Member
Registered Member


Joined: Jul 10, 2005
Posts: 23

Snjeza:

Thank you for the response...

I tried your suggestion and it still doesn't work...

Received a new error message:

Code:

    javax.servlet.ServletException: Servlet.init() for servlet webShopApp threw exception
       org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
       org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
       org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
       org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
       org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
       org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
       org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
       java.lang.Thread.run(Thread.java:613)
     
    root cause
     
    org.springframework.beans.factory.BeanDefinitionStoreException: Line 1 in XML document from ServletContext resource [/WEB-INF/webShopApp-servlet.xml] is invalid; nested exception is org.xml.sax.SAXParseException: Document root element "beans", must match DOCTYPE root "null".
       org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:229)
       org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:173)
       org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:148)
       org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:129)
       org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:145)
       org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:126)
       org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:94)
       org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:89)
       org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:262)
       org.springframework.web.context.support.AbstractRefreshableWebApplicationContext.refresh(AbstractRefreshableWebApplicationContext.java:139)
       org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:306)
       org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:251)
       org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:220)
       org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:112)
       javax.servlet.GenericServlet.init(GenericServlet.java:211)
       org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
       org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
       org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
       org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
       org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
       org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
       org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
       java.lang.Thread.run(Thread.java:613)



I renamed webshop-Servlet.xml to webshopApp-servlet.xml and as you can see it threw this new error message of:

Code:

"org.springframework.beans.factory.BeanDefinitionStoreException:
 Line 1 in XML document from ServletContext resource [/WEB-INF/webShopApp-servlet.xml] is invalid;
 nested exception is org.xml.sax.SAXParseException: Document root element "beans", must match DOCTYPE root "null"."


Inside the webShopApp-servlet.xml:

Code:

<beans>
   <bean id="store" class="com.webshop.util.LineItems">
      <property name="storeName">
         <value>Sunrise Schwinn</value>
      </property>
   </bean>
   
   <bean id="productsController" class="com.webshop.controller.ProductsController">
      <property name="facade">
         <ref bean="store"/>
      </property>
   </bean>
   
   <bean id="editProductController" class="com.webshop.controller.EditProductController">
      <property name="facade">
         <ref bean="store"/>
      </property>
   </bean>
   
   <bean id="submitProductController" class="com.webshop.controller.SubmitProductController">
      <property name="facade">
         <ref bean="store"/>
      </property>
   </bean>
   
   <bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
      <property name="mappings">
         <props>
            <prop key="/products.products">productsController</prop>
            <prop key="/editProduct.products">editProductController</prop>
            <prop key="/newProduct.products">editProductController</prop>
            <prop key="/submitProduct.products">submitProductController</prop>
         </props>
      </property>
   </bean>
</beans>


Does anyone know what's wrong?
 
 View user's profile Send private message Send e-mail Visit poster's website  
Reply with quote Back to top
support-snjeza
Post subject:   PostPosted: Oct 20, 2006 - 12:31 PM
Moderator
Moderator


Joined: Aug 14, 2006
Posts: 72

untz,

Sorry, somebody made the mistake to close your post.
Please, add DOCTYPE declaration to xml file :

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


Spring can't validate xml file without this declaration.

Regards,
Snjeza
 
 View user's profile Send private message  
Reply with quote Back to top
Display posts from previous:     
Jump to:  
All times are GMT - 6 Hours
Post new topic   Reply to topic
View previous topic Printable version Log in to check your private messages View next topic
Powered by PNphpBB2 © 2003-2004 The PNphpBB Group
Credits