`

Flex+Java+Blazeds:org.springframework.dao.InvalidDataAccessApiUsageException错误

阅读更多

参考:http://lucky16.iteye.com/blog/673903

 

 

错误代码:

Java代码   收藏代码
  1. org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in read-only mode (FlushMode.NEVER/MANUAL): Turn your Session into FlushMode.COMMIT/AUTO or remove 'readOnly' marker from transaction definition.  
  2.     at org.springframework.orm.hibernate3.HibernateTemplate.checkWriteOperationAllowed(HibernateTemplate.java:1186)  
  3.     at org.springframework.orm.hibernate3.HibernateTemplate$12.doInHibernate(HibernateTemplate.java:696)  
  4.     at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:419)  
  5.  .............................(代码偏长,余下的省略掉)  


在项目中使用Spring+Hibernate的时候,会开启OpenSessionInViewFilter来阻止延迟加载的错误,但是在我们开启OpenSessionInViewFilter这个过滤器的时候FlushMode就已经被默认设置为了MANUAL,如果FlushMode是MANUAL或NEVEL,在操作过程中 hibernate会将事务设置为readonly,所以在增加、删除或修改操作过程中会出现如下错误 
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; 
解决办法:直接修改OpenSessionInViewFilter过滤器的配置,配置过滤器的时候配置就是在一般的配置里面加上下面蓝色部分就可以了,直接指定flushMode的配置就OK了:

Xml代码   收藏代码
  1. <filter>  
  2.        <filter-name>hibernateFilter</filter-name>  
  3.        <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>  
  4.       [color=blue<init-param>  
  5.            <param-name>flushMode</param-name>  
  6.            <param-value>AUTO</param-value>  
  7.        </init-param>[/color]  
  8.        <init-param>  
  9.            <param-name>singleSession</param-name>  
  10.            <param-value>true</param-value>  
  11.        </init-param>  
  12.    </filter>  
  13.    <filter-mapping>  
  14.        <filter-name>hibernateFilter</filter-name>  
  15.        <url-pattern>/*</url-pattern>  
  16.    </filter-mapping>  


 

分享到:
评论

相关推荐

    MyEclipse7.5+flex4+spring3.0.5+struts2.2.1+hibernate3.6.0+blazeds4.0.0.14931完美整合方案

    本方案提供了一种集成化的开发环境,即"MyEclipse7.5+flex4+spring3.0.5+struts2.2.1+hibernate3.6.0+blazeds4.0.0.14931完美整合方案",它将多个流行的技术框架整合在一起,为Web应用程序开发提供了一个强大的平台...

    Flex+JAVA+BlazeDS开发环境配置(Java工程和Flex工程独立)

    BlazeDS 是一款开源的服务器端技术,由 Adobe 提供,主要用于实现 Java 应用程序与 Flex 客户端之间的通信。它利用 AMF(Action Message Format)协议,这是一种二进制格式,相比基于文本的协议如 XML,AMF 提供了更...

    PureMVC+Flex+BlazeDS+Spring+Hibernate.doc

    标题中的“PureMVC+Flex+BlazeDS+Spring+Hibernate.doc”指的是一项整合了多种技术的Web应用开发方案,这些技术包括PureMVC、Flex、BlazeDS、Spring和Hibernate。这篇文档可能是指导读者如何将这些技术结合在一起...

    flex+Spring+Hibernate+Cairngorm+BlazeDS+Spring BlazeDS Integration整合框架

    使用flex 4.5 + Spring 3.0 + Hibernate 3.3 + Cairngorm 2.2.1 + BlazeDS 3.3.0 + Spring BlazeDS Integration 1.0.3整合出的一个登录的小demo·

    Flex+J2EE实例(cairngorm+blazeDS+hibernate+spring) part3.pdf

    ### Flex+J2EE 实例(Cairngorm+BlazeDS+Hibernate+Spring)Part 3 #### 概述 本章节主要介绍了如何在已有的Flex+J2EE架构项目中集成Spring框架和Hibernate持久层框架。通过这种方式,我们可以更好地实现业务逻辑...

    Flex + blazeds + Java推送

    Flex + blazeds + Java推送Demo 本例实现由Flex一端客户端发送消息, 然后由Java端在发布到所有订阅的其它Flex端. 里面有说明与源码, 还有一个直接放到Tomcat里面的直接发布的项目 小编使用工具 eclipse3.5 flex sdk...

    flex+java+spring+hibernate+blazeds整合

    《Flex+Java+Spring+Hibernate+BlazeDS整合详解》 在现代的Web开发中,Flex作为客户端的富互联网应用程序(RIA)框架,与Java、Spring、Hibernate等后端技术结合,可以构建出高效、交互性强的Web应用。本文将详细...

    Flex+java+bluzeds反向推送.docx

    Flex+Java+BlazeDS 反向推送技术是构建实时通信应用的一种常见方案,它允许服务器主动将数据推送到客户端,而不仅仅是响应客户端的请求。BlazeDS 是 Adobe 推出的一个开源项目,它提供了与 Flex 客户端进行双向通信...

    Flex+J2EE实例(cairngorm+blazeDS+hibernate+spring)part1.

    2. **BlazeDS与Flex通信**:BlazeDS提供了一种简单的方法来连接Flex前端与Java后端,使得数据交换变得更加容易。它可以支持AMF (Action Message Format) 格式的序列化,从而提高数据传输效率。 3. **Hibernate与...

    Flex+Elipse+blazeDS+tomcat部署.pdf

    通过以上知识点的详细说明,我们可以理解Flex+Elipse+BlazeDS+Tomcat的部署流程,涉及的主要是前端Flex应用的开发、后端Java服务的配置以及两者之间的通信中间件BlazeDS的使用。整个流程包括环境配置、Eclipse环境的...

    flex+java+mysql登录

    3. Java后台处理:在Java端,你需要创建一个对应的Servlet或Spring MVC控制器来处理来自Flex的请求。这个控制器会接收到Flex传递过来的登录信息,然后使用JDBC(Java Database Connectivity)API与MySQL数据库进行...

    flex+java+blazeds

    Flex、Java和BlazeDS是构建富互联网应用程序(RIA)的技术组合,它们在现代Web开发中扮演着重要的角色。下面将详细介绍这三个技术及其结合使用的场景和知识点。 **Flex** 是Adobe公司开发的一种开源的、基于MXML和...

    Flex+J2EE实例(cairngorm+blazeDS+hibernate+spring) part2.pdf

    ### Flex+J2EE 实例(Cairngorm+BlazeDS+Hibernate+Spring)Part 2 #### 一、概述 本文档介绍了一个利用Flex前端技术与J2EE后端技术结合的具体实现案例,主要涉及到的技术栈包括:Cairngorm、BlazeDS、Hibernate ...

    Flex+blazeds+java企业门户网站完整源码

    总之,这个“Flex+blazeds+java企业门户网站完整源码”是一个很好的学习资源,可以帮助开发者掌握如何利用Flex构建富用户体验的Web应用,并通过BlazeDS实现与Java后端的有效交互,进而构建高效、功能强大的企业级...

    flex+blazeds+spring

    标题“flex+blazeds+spring”表明我们要探讨的是如何将Flex前端与BlazeDS中继层和Spring后端框架结合起来,实现完整的数据交互和应用程序逻辑。 在Flex与Spring集成的环境中,Flex作为用户界面展示层,负责与用户...

Global site tag (gtag.js) - Google Analytics