applicationContext.xml文件有什么问题

时间:2014-03-09 16:28:39

标签: java xml web-applications

我正在尝试将dtatbase连接到我的Web应用程序。 MSSQL服务器中的数据库。这是我的applicationContext.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:p="http://www.springframework.org/schema/p"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
       http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
       http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd">

    <bean id="txManagerDH" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
          <property name="sessionFactory" ref="dhSessionFactory"/>
    </bean>

    <tx:annotation-driven transaction-manager="txManagerDH"/>      

<bean id="dhDataSource"
    class="org.springframework.jdbc.datasource.DriverManagerDataSource"
    p:driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
    p:url="jdbc:sqlserver://TARAS-PC\SQLEXPRESS:1433:databaseName=DH:"
    p:username="GlassfishDH"
    p:password="glassfish" />

    <bean id="dhSessionFactory"
          class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"
          p:dataSource-ref="dhDataSource">
        <property name="annotatedClasses">
            <list>
                <value>model.User</value>
            </list>
        </property>
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">
                    org.hibernate.dialect.SQLServerDialect
                </prop>
                <prop key="hibernate.show_sql">false</prop>
            </props>
        </property>
    </bean>

    <bean id="UserDao" class="model.UserDao" p:sessionFactory-ref="dhSessionFactory"/>

    <bean id="UserService" class="service.UserService"
        p:userDao-ref="UserDao"/>

</beans>

当我尝试运行时,我有一个错误:

  

部署期间出错:加载应用时出现异常:   java.lang.IllegalStateException:ContainerBase.addChild:start:   org.apache.catalina.LifecycleException:   org.springframework.beans.factory.BeanCreationException:错误   在ServletContext中定义名为'txManagerDH'的bean   资源[/WEB-INF/applicationContext.xml]:BeanPostProcessor之前   bean的实例化失败;嵌套异常是   java.lang.NoClassDefFoundError:org / aopalliance / aop / Advice。请参阅   server.log获取更多详细信息。

我的代码中没有错。请帮帮我。

2 个答案:

答案 0 :(得分:1)

您错过了类路径中的aop-alliance库。您可以获取二进制或maven依赖here

或者,获取完整的spring-aop库。

答案 1 :(得分:0)

如果你面临同样的问题,那么你会错过aopalliance.jar。在此位置,您可以加载jar http://mvnrepository.com/artifact/aopalliance/aopalliance/1.0。另外,建议您使用Maven来处理所有这些依赖项,而不是自己动手。我在这里遇到了同样的问题,它已经解决了。这是我的帖子:Not able to load the applicationContext.xml in Spring。如果这个问题得到解决,那么Spring 4.0.0与hibernate 4.30的兼容性将会有另一个问题。

在dipatcher-servlet中,而不是

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">

使用

<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">