spring_SSH整合之_三个常见问题

来源:互联网 发布:莫知的意思是什么 编辑:程序博客网 时间:2024/06/05 01:18

openSessionInView执行顺序:


sessinFactory名字指定:

严重: Servlet.service() for servlet default threw exception

org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'sessinFactory' is defined

异常原因:

spring里面的SessionFactory的id不叫sessionFactory名字。所以找不到sessinFactory。如果要想被找到sessionFactory名字。

1,把sessinFactory的id值设为sessinFactory

2,在openSessionInView的filter里面加上,你的sessionFactory的id值


<!-- 指定你的sessionFactory名字 -->
<init-param>
<param-name>sessionFactoryBeanName</param-name>
<param-value>sessinFactory</param-value>
</init-param>

<?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:context="http://www.springframework.org/schema/context"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.xsd        http://www.springframework.org/schema/context        http://www.springframework.org/schema/context/spring-context.xsd        http://www.springframework.org/schema/aop        http://www.springframework.org/schema/aop/spring-aop.xsd        http://www.springframework.org/schema/tx        http://www.springframework.org/schema/tx/spring-tx.xsd"><!-- 依赖注入UserDaoImpl --><bean id="userDaoImpl" class="com.bjsxt.registration.dao.impl.UserDaoImpl"><property name="hibernateTemplate" ref="hibernateTemplate" /><property name="sessionFactory" ref="sf" /></bean><!-- 依赖注入UserManagerImpl --><bean id="userManagerImpl" class="com.bjsxt.registration.service.impl.UserManagerImpl"><property name="userDao" ref="userDaoImpl" /></bean><!-- 依赖注入UserAction,每次访问都创建一个新实例 --><bean id="userAction" class="com.bjsxt.registration.action.UserAction"scope="prototype"><property name="userManager" ref="userManagerImpl" /><property name="info" ref="info" /></bean><!-- 依赖注入UserRegisterInfo --><bean id="info" class="com.bjsxt.registration.vo.UserRegisterInfo"></bean><!-- 配置DataSource --><beanclass="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"><property name="locations"><value>classpath:jdbc.properties</value></property></bean><bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"destroy-method="close"><property name="driverClassName" value="${jdbc.driverClassName}" /><property name="url" value="${jdbc.url}" /><property name="username" value="${jdbc.username}" /><property name="password" value="${jdbc.password}" /></bean><!-- 配置SessionFactory --><bean id="sf"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"><property name="dataSource" ref="dataSource" /><property name="mappingDirectoryLocations"><list><value>classpath:com/bjsxt/registration/model/</value></list></property><property name="hibernateProperties"><props><!-- 显示SQL语句 --><prop key="hibernate.show_sql">true</prop><!-- 自动构建表结构 --><prop key="hibernate.hbm2ddl.auto">update</prop></props></property></bean><!-- 配置HibernateTeimplate --><bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate"><property name="sessionFactory" ref="sf" /></bean><!-- 配置事务txManager --><bean id="txMeanage"class="org.springframework.orm.hibernate3.HibernateTransactionManager"><property name="sessionFactory" ref="sf" /></bean><!-- 配置AOP范围 --><aop:config><aop:pointcutexpression="execution(public * com.bjsxt.registration.service..*.*(..))"id="pointcut" /><aop:advisor advice-ref="txAdvice" pointcut-ref="pointcut" /></aop:config><!-- 配置事务范围txAdvisor --><tx:advice id="txAdvice" transaction-manager="txMeanage"><tx:attributes><tx:method name="exists" read-only="true" /><tx:method name="get*" read-only="true" /><tx:method name="add*" propagation="REQUIRED" /></tx:attributes></tx:advice></beans>

<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"><!-- Spring监听器 --><context-param><param-name>contextConfigLocation</param-name><!-- 去classpath下找一个叫beans.xml文件 --><param-value>classpath:beans.xml</param-value></context-param><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><!-- 由OpenSessionInView关闭Session,告诉spring等jsp执行完了再关闭Session --><filter><filter-name>openSessionInView</filter-name><filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class><!-- 指定你的sessionFactory名字 --><init-param><param-name>sessionFactoryBeanName</param-name><param-value>sf</param-value></init-param></filter><filter-mapping><filter-name>openSessionInView</filter-name><url-pattern>/*</url-pattern></filter-mapping><!-- Struts2过滤器 --><filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class></filter><filter-mapping><filter-name>struts2</filter-name><url-pattern>/*</url-pattern></filter-mapping><!-- 默认页面 --><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list></web-app>

如果不配置txManager:

将抛出只读异常

http://blog.csdn.net/l1585931143/article/details/72810854


阅读全文
0 0
原创粉丝点击