Unexpected exception parsing XML document from ServletContext resource

18,031

Solution 1

This is a part of your stacktrace:

Constructor threw exception; nested exception is java.lang.NoC
lassDefFoundError: org/springframework/aop/config/AbstractInterceptorDrivenBeanD
efinitionDecorator

which says that Aspect Oriented Programming (AOP) Framework jars are not present in the classpath. So you need to add spring-aop (spring-aop-3.0.5.RELEASE.jar) jars to your classpath.

Solution 2

You need to add spring.jar to your library. spring-security jars would be referencing it. Hence failing initialization.

Solution 3

I found same exception in my project but after adding spring-aop-4.1.6.RELEASE.jar i resolved the problem. please be careful about the version of jar which you are going to add in your project... :)

Share:
18,031
LoveTW
Author by

LoveTW

Updated on June 05, 2022

Comments

  • LoveTW
    LoveTW almost 2 years

    I find a basic spring security example, but I can't run it usually on tomcat. I know this error message might be caused by the configuration xml file, but I can't find it. Thanks for the help:)

    1. Error Message

    java.lang.NoClassDefFoundError: org/springframework/dao/DataAccessException
            at java.lang.Class.getDeclaredMethods0(Native Method)
            at java.lang.Class.privateGetDeclaredMethods(Class.java:2521)
            at java.lang.Class.getDeclaredMethods(Class.java:1845)
            at org.springframework.core.type.StandardAnnotationMetadata.hasAnnotated
    Methods(StandardAnnotationMetadata.java:136)
            at org.springframework.context.annotation.ConfigurationClassBeanDefiniti
    onReader.checkConfigurationClassCandidate(ConfigurationClassBeanDefinitionReader
    .java:318)
    

    2. File Structure

    enter image description here

    3. web.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
        id="WebApp_ID" version="2.5">
    
        <display-name>Spring MVC Application</display-name>
    
        <!-- Spring MVC -->
        <servlet>
            <servlet-name>mvc-dispatcher</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
            <load-on-startup>1</load-on-startup>
        </servlet>
        <servlet-mapping>
            <servlet-name>mvc-dispatcher</servlet-name>
            <url-pattern>/</url-pattern>
        </servlet-mapping>
    
        <listener>
            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
        </listener>
    
        <context-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>
                /WEB-INF/mvc-dispatcher-servlet.xml,
                /WEB-INF/spring-security.xml
            </param-value>
        </context-param>
    
        <!-- Spring Security -->
        <filter>
            <filter-name>springSecurityFilterChain</filter-name>
            <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
        </filter>
    
        <filter-mapping>
            <filter-name>springSecurityFilterChain</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
    
    </web-app>
    

    4. mvc-dispatcher-servlet.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="
            http://www.springframework.org/schema/beans     
            http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
            http://www.springframework.org/schema/context 
            http://www.springframework.org/schema/context/spring-context-3.0.xsd">
    
        <context:component-scan base-package="com.mkyong.common.controller" />
    
        <bean
            class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix">
                <value>/WEB-INF/pages/</value>
            </property>
            <property name="suffix">
                <value>.jsp</value>
            </property>
        </bean>
    
        <bean id="messageSource"
            class="org.springframework.context.support.ResourceBundleMessageSource">
            <property name="basenames">
                <list>
                    <value>mymessages</value>
                </list>
            </property>
        </bean>
    
    </beans>
    

    5.spring-security.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <beans:beans xmlns="http://www.springframework.org/schema/security"
        xmlns:beans="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
        http://www.springframework.org/schema/security
        http://www.springframework.org/schema/security/spring-security-3.0.3.xsd">
    
        <http auto-config="true">
            <intercept-url pattern="/welcome*" access="ROLE_USER" />
    
            <form-login login-page="/login" default-target-url="/welcome" authentication-failure-url="/loginfailed"
                 />
        </http>
    
        <authentication-manager>
            <authentication-provider>
                <user-service>
                    <user name="mkyong" password="123456" authorities="ROLE_USER" />
                </user-service>
            </authentication-provider>
        </authentication-manager>
    
    </beans:beans>