添加安全jar后,Bean Creation失败

时间:2013-02-21 17:45:33

标签: spring spring-security

我遇到以下错误

异常将上下文初始化事件发送到类的监听器实例org.springframework.web.context.ContextLoaderListener:org.springframework.beans.factory.BeanCreationException:创建名为'userAuditLogAspect'的bean时出错:注入自动连接的依赖项失败;嵌套异常是org.springframework.beans.factory.BeanCreationException:无法自动装配字段:private javax.sql.DataSource com.vzw.aspect.UserAuditLogAspect.dataSource;嵌套异常是org.springframework.beans.factory.NoSuchBeanDefinitionException:没有为依赖项找到类型为[javax.sql.DataSource]的匹配bean:期望至少有一个bean可以作为此依赖项的autowire候选者。依赖注释:{@ org.springframework.beans.factory.annotation.Autowired(required = true),@ org.springframework.beans.factory.annotation.Qualifier(value = topoDataSource)} 相关原因:org.springframework.beans.factory.BeanCreationException:创建名为'topoDataSource'的bean时出错:bean的初始化失败;嵌套异常是java.lang.NoClassDefFoundError:无法初始化类org.springframework.expression.TypedValue

我的网页xml是:

<context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>WEB-INF/spring-security.xml, WEB-INF/topoService-servlet.xml</param-value>
 </context-param>
 <!-- Spring Security Filter -->
 <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>
 <!-- <context-param>
        <param-name>resteasy.resources</param-name>
        <param-value>com.vz.myrest.MessageRestService</param-value>
    </context-param> -->
 <listener>
  <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
 </listener>}

2)toposervice-servlet.xml

<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jee="http://www.springframework.org/schema/jee" xmlns:aop="http://www.springframework.org/schema/aop"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd

    http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee.xsd
    http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"
    >   
    <aop:aspectj-autoproxy />
    <context:component-scan base-package="com.vzw.context, com.vzw.aspect, com.vzw.logger" />

    <jee:jndi-lookup id="topoDataSource" jndi-name="java:/TopoDSJNDI" />

    <!--<bean class="com.vzw.context.SpringApplicationContext"></bean> -->

    <bean id="topoServiceDao" class="com.vzw.topo.dao.TopoServiceDaoImpl">
        <property name="dataSource">
            <ref bean="topoDataSource" />
        </property>
    </bean>

</beans>

3)pom.xml

<dependencies>
    <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-jaxrs</artifactId>
        <scope>provided</scope>
        <version>2.3.4.Final</version><!--$NO-MVN-MAN-VER$ -->
    </dependency>
    <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-multipart-provider</artifactId>
        <scope>provided</scope>
        <version>2.3.4.Final</version><!--$NO-MVN-MAN-VER$ -->
    </dependency>
    <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-jaxb-provider</artifactId>
        <scope>provided</scope>
        <version>2.3.4.Final</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
        <version>3.1.3.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-jackson-provider</artifactId>
        <scope>provided</scope>
        <version>2.3.4.Final</version><!--$NO-MVN-MAN-VER$ -->
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>3.1.1.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-beans</artifactId>
        <version>3.1.1.RELEASE</version>
        <classifier>sources</classifier>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-aop</artifactId>
        <version>3.1.2.RELEASE</version>
    </dependency>
    <!--<dependency> <groupId>org.springframework</groupId> <artifactId>spring-aspects</artifactId> 
        <version>3.1.2.RELEASE</version> </dependency> -->
    <!-- <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> 
        <version>3.1.2.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> 
        <artifactId>spring-context-support</artifactId> <version>3.1.2.RELEASE</version> 
        </dependency> -->
    <!-- Spring Security -->
    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-core</artifactId>
        <version>3.1.3.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-web</artifactId>
        <version>3.1.3.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-config</artifactId>
        <version>3.1.3.RELEASE</version>
    </dependency>
    <!-- Spring Security ends -->
    <dependency>
        <groupId>org.jboss.spec.javax.servlet</groupId>
        <artifactId>jboss-servlet-api_3.0_spec</artifactId>
        <version>1.0.2.Final</version>
    </dependency>
    <dependency>
        <groupId>javax.annotation</groupId>
        <artifactId>jsr250-api</artifactId>
        <version>1.0</version>
        <type>jar</type>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>org.aspectj</groupId>
        <artifactId>aspectjweaver</artifactId>
        <version>1.7.0</version>
    </dependency>
    <dependency>
        <groupId>commons-beanutils</groupId>
        <artifactId>commons-beanutils</artifactId>
        <version>1.8.3</version>
    </dependency>
    <dependency>
        <groupId>commons-lang</groupId>
        <artifactId>commons-lang</artifactId>
        <version>2.6</version>
    </dependency>
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
    </dependency>
</dependencies>

问题是我添加安全依赖项后立即获得异常。它与上下文有关但我不确定。 任何指针都会有所帮助。

谢谢, 阿米特

1 个答案:

答案 0 :(得分:0)

某些Spring依赖项的版本为3.1.1.RELEASE,其他版本为3.1.2.RELEASE3.1.3.RELEASE。始终使用相同的Spring版本。您应该在maven pom中定义spring.version属性,而不是手动输入值。

检查应用程序运行的类路径(例如,使用mvn -X运行测试)并确保没有不一致的问题,例如不同的Spring jar版本或具有不同版本号的重复jar。