`
rexhee
  • 浏览: 1399 次
  • 来自: ...
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

Spring 事务下 openSessionInViewFilter flushMode 的问题

阅读更多
这是 applicationContext.xml

<!--
*************************************
以下定义的是系统中的数据源,class 属性定义了连接数据源的类的路径
<property> 标签定义的是 hibernate 数据源文件的路径
*************************************
-->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation">
<value>/WEB-INF/classes/hibernate.cfg.xml</value>
</property>
</bean>


<!--
*************************************
以下定义了 Spring 所提供的 hibernate3 的事务管理器,
该事务管理器采用设值注入的方式使用了 sessionFactory 定义的数据源
*************************************
-->
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>

<bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor">   
    <property name="transactionManager" ref="transactionManager"/>   
    <property name="transactionAttributes"> 
        <props> 
            <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
                    <prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
                    <prop key="load*">PROPAGATION_REQUIRED,readOnly</prop>
                    <prop key="save*">PROPAGATION_REQUIRED</prop>
                    <prop key="add*">PROPAGATION_REQUIRED</prop>
                    <prop key="update*">PROPAGATION_REQUIRED</prop>
                    <prop key="remove*">PROPAGATION_REQUIRED</prop>
        </props> 
    </property> 
</bean>
<bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">   
<property name="beanNames"> 
    <value>UserServiceImpl</value> 
</property> 
<property name="interceptorNames">   
        <list>   
<value>transactionInterceptor</value>   
<!--此处增加新的Interceptor -->   
</list>   
</property>   
</bean>

<bean class="org.springframework.transaction.interceptor.TransactionAttributeSourceAdvisor">   
<property name="transactionInterceptor" ref="transactionInterceptor"/>   
</bean>

<bean id="UserServiceImpl" class="service.UserServiceImpl" autowire="byName" />
<!--
*************************************
以下 bean 定义了 Spring 的 HibernateTemplate,
当需要在程序中直接对持久化层进行访问时,
可以直接使用 Spring 提供的 HibernateTemplate 类进行操作
*************************************
-->
<bean id="infoMsgsDAO" class="dao.InfoMsgsDAO">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>

<!-- Ajax -->
<bean name="/ajax" class="struts.action.advinfo.AjaxAction">
<property name="userServiceImpl">
<ref bean="UserServiceImpl"/>
</property>
</bean>

这是 UserServiceImpl 代码

import dao.InfoContextlistDAO;
import dao.InfoFeedbackDAO;
import dao.InfoMsgsDAO;

public class UserServiceImpl implements IUserService {

private InfoContextlistDAO infoContextlistDAO;
private InfoFeedbackDAO infoFeedbackDAO;
private InfoMsgsDAO infoMsgsDAO;

public void setInfoContextlistDAO(InfoContextlistDAO infoContextlistDAO){
this.infoContextlistDAO = infoContextlistDAO;
}

public InfoContextlistDAO getInfoContextlistDAO(){
return this.infoContextlistDAO;
}

public void setInfoFeedbackDAO(InfoFeedbackDAO infoFeedbackDAO){
this.infoFeedbackDAO = infoFeedbackDAO;
}

public InfoFeedbackDAO getInfoFeedbackDAO(){
return this.infoFeedbackDAO;
}

public void setInfoMsgsDAO(InfoMsgsDAO infoMsgsDAO){
this.infoMsgsDAO = infoMsgsDAO;
}

public InfoMsgsDAO getInfoMsgsDAO(){
return this.infoMsgsDAO;
}
}


这是 UserServiceImpl 的接口 IUserService

package service;

import dao.InfoContextlistDAO;
import dao.InfoFeedbackDAO;
import dao.InfoMsgsDAO;

public interface IUserService {

public void setInfoContextlistDAO(InfoContextlistDAO infoContextlistDAO);

public InfoContextlistDAO getInfoContextlistDAO();

public void setInfoFeedbackDAO(InfoFeedbackDAO infoFeedbackDAO);

public InfoFeedbackDAO getInfoFeedbackDAO();

public void setInfoMsgsDAO(InfoMsgsDAO infoMsgsDAO);

public InfoMsgsDAO getInfoMsgsDAO();

}



按道理事务也配置成功了,可是为什么还是报这个错误:

javax.servlet.ServletException: org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in read-only mode (FlushMode.NEVER) - turn your Session into FlushMode.AUTO or remove 'readOnly' marker from transaction definition
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:523)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
filter.MemberLimitFilter.doFilter(MemberLimitFilter.java:53)
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:75)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:174)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
分享到:
评论

相关推荐

    OpenSessionInViewFilter

    OpenSessionInViewFilter个人学习总结

    关于OpenSessionInViewFilter的学习

    NULL 博文链接:https://yanzhenwei.iteye.com/blog/1701164

    struts+spring+hibernate整合

    ModelDriven、Preparable 拦截器、编写自定义的类型转换器、Struts2 处理 Ajax、OpenSessionInViewFilter、迫切左外连接、Spring 声明式事务、Spring IOC 管理各个组件等。

    spring_demo:Spring MVC示范项目

    Spring MVC Hibernate Demo Hibernate 配置 数据库实体必须设置以下注解 @Entity ... &lt;filter&gt;org.springframework.orm.hibernate4.support.OpenSessionInViewFilter &lt;param&gt;flushMode&lt;/param-nam

    spring_note.rar_inversion_spring concept

    课程内容 面向接口(抽象)编程的概念与好处 IOC/DI的概念与好处 inversion of control dependency injection AOP的概念与好处 ...opensessionInviewfilter(记住,解决什么问题,怎么解决) Spring JDBC

    SPRING API 2.0.CHM

    OpenSessionInViewFilter OpenSessionInViewInterceptor OpenSessionInViewInterceptor OptimisticLockingFailureException OptionsTag OptionTag OptionWriter OracleLobHandler OracleLobHandler....

    jar包(struts2.0.8+spring2.0+hibernate3.2)

    struts2.0.8+spring2.0+hibernate3.2 jar包

    Sping 事务管理.doc

    OpenSessionInViewFilter解决Web应用程序的问题

    OA项目SSH整合框架

    3,在web.xml中配置 spring 的 OpenSessionInView 过滤器(解决抛LazyInitializationException的问题) 1,配置 &lt;!-- 配置 spring 的 OpenSessionInView 过滤器 --&gt; &lt;filter-name&gt;OpenSessionInView ...

    SSH项目整合示例【OpenSessionInView】所用到的jar包

    SSH项目整合示例【OpenSessionInView】所用到的jar包 包含Struts + Hibernate + Spring所有jar及其依赖的jar

    S2SH集成 案例

    该案例实现了一个简单的登录功能,但里面将S2SH集成的所有配置信息都添加进去了。 如,OpenSessionInViewFilter、声明式事务、三层等等

    Mac Mysql数据库中文乱码问题解决

    Mac 下MySQL数据库中文乱码解决方案: 当我们用框架进行数据库的存储操作时,经常会遇到中文乱码的问题。 如:在使用Java中得SSH框架时,我们需要在web.xml文件中配置编码的filter,具体代码是: ...

Global site tag (gtag.js) - Google Analytics