我正在尝试将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获取更多详细信息。
我的代码中没有错。请帮帮我。
答案 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">