异常:Write operations are not allowed in read-only mode (FlushMode.MANUAL): Turn your Session into FlushMode.COMMIT/AUTO or remove 'readOnly' marker from transaction definition.
web.xml内容:
<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
spring事件配置如下:
<aop:config>
<aop:pointcut id="txServices" expression="execution(* com.cnlive.dms.service..*.*(..))"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="txServices"/>
</aop:config>
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="add*" propagation="REQUIRED"/>
<tx:method name="insert*" propagation="REQUIRED"/>
<tx:method name="update*" propagation="REQUIRED"/>
<tx:method name="delete*" propagation="REQUIRED"/>
</tx:attributes>
</tx:advice>
Service中是这样的:
@Override
public boolean createAdmin(Admin admin) {
// TODO Auto-generated method stub
Admin ad=adminDao.getAdminByUsername(admin.getUsername());
if(ad==null){
adminDao.insertAdmin(admin);
return true;
}
return false;
}
在运行到createAdmin方法中的adminDao.insertAdmin(admin);时就报异常。
解决方法:
将createAdmin方法配置到spring的事件中管理,添加了以下的一条配置
<tx:method name="create*" propagation="REQUIRED"/>
具体spring事件配置如下:
<aop:config>
<aop:pointcut id="txServices" expression="execution(* com.cnlive.dms.service..*.*(..))"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="txServices"/>
</aop:config>
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="add*" propagation="REQUIRED"/>
<tx:method name="insert*" propagation="REQUIRED"/>
<tx:method name="update*" propagation="REQUIRED"/>
<tx:method name="delete*" propagation="REQUIRED"/>
<tx:method name="create*" propagation="REQUIRED"/>
</tx:attributes>
</tx:advice>
呵呵!问题就这样简单的解决了!不知道我们碰到的问题是否一样!
分享到:
相关推荐
### 使用Spring引起的错误:Write ...通过以上解决方案和配置示例,可以有效地解决在使用Spring框架和Hibernate时出现的“Write operations are not allowed in read-only mode (FlushMode.NEVER)”这一问题。
Tomcat作为一款广泛使用的Java Web服务器,提供了一种方式来处理跨域请求,这就是我们今天要讨论的“cors-filter”jar包。 标题中的“cors-filter-1.7.jar”,“cors-filter-2.5.jar”和“cors-filter-2.10.jar”是...
在Java Web服务器如Tomcat上,我们可以通过引入特定的jar包来解决这个问题。本篇将详细介绍如何利用java-property-utils-1.9.jar和cors-filter-1.7.jar这两个jar包解决Tomcat的跨域问题。 首先,让我们了解`java-...
在IT行业中,尤其是在Web开发领域,跨域资源共享(CORS,Cross-Origin Resource Sharing)是一个重要的概念,它允许浏览器向不同源的服务器发送Ajax请求。在这个场景中,我们关注的两个jar包——"cors-filter-1.7....
另一种方式是创建一个CORS过滤器,通过`WebMvcConfigurer`接口的`addCorsMappings`方法来配置。这可以在全局范围内控制跨域策略,比如: ```java @Configuration public class WebConfig implements ...
针对这个问题,Tomcat服务器提供了多种解决方案,其中之一就是通过使用特定的jar包来处理跨域请求。这里提到的`java-property-utils-1.9.jar`并不是直接解决跨域问题的库,但它可能在配置或辅助处理跨域问题的过程中...
Prerequisites: Java VM 1.8 Open a command shell/window, browse to where you ...Using the --help option will show the allowed command line arguments. 更多查看: https://github.com/WebGoat/WebGoat
**405 Method Not Allowed** - 请求行中指定的方法不被允许使用于请求相应的资源。 **406 Not Acceptable** - 服务器生成的响应没有满足客户端的MIME类型需求。 **407 Proxy Authentication Required** - 和401...
4. **警报通知** - 当系统出现异常时,能发送邮件、短信或通过其他方式通知管理员。 **NRPE扩展功能:** 1. **远程执行插件** - NRPE允许Nagios服务器在远程主机上运行插件,获取更丰富的监控数据。 2. **安全性...
本文将深入探讨PyPI(Python Package Index)上下载的`aws-cdk.aws-cloudfront-origins-1.97.0.tar.gz`资源,这是一个与AWS CloudFront和其源相关的Python库。我们将解析该库的功能、用途以及如何在实际的云计算项目...
2015-01-16: Version 8.039.01: Changed driver code to not use IP checksum hardware offload (caused various issues with networking in VMs) 2015-01-05: Version 8.039.00: Original version
在线封装和离线封装驱动 ... Description ...Adds the blacklisted ESXi 5.1 built-in ...Requires MaintMode Live Install Allowed Live Remove Allowed Stateless Ready Overlay Yes No No Yes No
解决web.xml中 <page-encoding>UTF-8</page-encoding>报错。错误提示: cvc-complex-type.2.4.a: Invalid content was found starting with element 'page-encoding'. One of '{"http:// java.sun....
Requires MaintMode Live Install Allowed Live Remove Allowed Stateless Ready Overlay Yes No No Yes No Additional links Related VMware Forum's post Package updated to include missing device IDs 1502...
跨域(Cross-Origin)是浏览器的一种安全机制,它限制了JavaScript只能向同源(协议+域名+端口相同)的网站发送Ajax请求,以防止恶意网站通过脚本获取并操作用户在其他网站上的敏感数据。然而,在实际开发中,我们...
跨域资源共享(CORS,Cross-Origin Resource Sharing)是一种机制,允许Web应用从不同的源(比如不同的域名、协议或端口)获取资源。在现代Web开发中,由于浏览器的同源策略限制,通常需要进行跨域配置来实现不同源...
NOTE: Windows executables in SDK are not signed so you may encounter security warnings on W8 and W10. On MacOS you may need to run SDK executables directly from console as they are not signed too.
When True then in ftmPanning mode will be shown only cached image of the initial client area. All parts outside will paints of the TFlexPanel.Brush. When returning from ftmPanning mode the complete ...
NOTE: sciter.dlls, sciter.exe and notes.exe Windows executables in SDK are digitally signed now. On MacOS you may need to run SDK executables directly from console as they are not signed too.
Requires MaintMode Live Install Allowed Live Remove Allowed Stateless Ready Overlay Yes No No Yes No Additional links VMware Communities thread about running VMware ESXi inside Hyper-V Build ...