升级java1.8及ssh版本中碰到的问题(二)

19 篇文章 0 订阅
15 篇文章 0 订阅

……接上文

三、org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter cannot be cast to javax.servlet.Servlet。解决方法:改变maven里的servlet-api版本为javax.servlet-api

这个问题我是百度了很久,具体是从哪儿得到的提示现在是实在想不起来了,网上有人是web.xml没配置对的,但这对我来说是不存在的,我升级的项目都是原来运行正常的,除非是升级版本后配置文件本身有更改,否则不应该出错,也不知道是不是后来其他的错误使我想到了这个问题,我在maven仓库里搜索servlet-api时,发现有两个,一个是servlet-api,一个是javax.servlet-api,一开始我就是用的servlet-api,后来百度了一下这两者之间的区别,才发现javax.servlet-api是servlet-api的后续版本,3以前是servlet-api,3以后是javax.servlet-api,我把servlet-api改为javax.servlet-api,这个问题解决了,至于为什么要升级,这个简单了,因为我其他包升级了啊。

四、struts2升级报ActionContextCleanUp<<is deprecated……解决方法:改变web.xml相关配置。

注解掉:

<p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(70, 70, 70); font-family: simsun; font-size: 14px; background-color: rgb(232, 220, 200);"><filter>
 <wbr> <wbr> <filter-name>struts-cleanup</filter-name>
 <wbr> <wbr> <filter-class>
 <wbr> <wbr> <wbr> org.apache.struts2.dispatcher.ActionContextCleanUp
 <wbr> <wbr> </filter-class>
 <wbr> </filter></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(70, 70, 70); font-family: simsun; font-size: 14px; background-color: rgb(232, 220, 200);">
 <wbr> <filter-mapping>
 <wbr> <wbr> <filter-name>struts-cleanup</filter-name>
 <wbr> <wbr> <url-pattern>/*</url-pattern>
 <wbr> </filter-mapping></wbr></wbr></wbr></wbr></wbr></wbr></p><span style="color: rgb(70, 70, 70); font-family: simsun; font-size: 14px; line-height: 21px; background-color: rgb(232, 220, 200);"></span>

这个完全是参考网上的答复的,见下面这个网页:

http://blog.sina.com.cn/s/blog_690794fd0101fqt7.html

五、Connection is read-only. Queries leading to data modification are not allowed。解决方法:update类的方法前加@Transactional

这个说一下,首先出现问题我是baidu了的,下面这两篇文章类似,代表了网上大多数说法:

http://www.tuicool.com/articles/7NZJvy3

http://blog.sina.com.cn/s/blog_664553710100pdca.html

可看文章都是说事务配置的问题,前面我也说过,更新的项目以前都是运行过,我虽然首先也是去看的配置文件,但总感觉并非一定要从配置文件入手,因为用名称限定@Transactional的readonly属性我总感觉挺奇怪的,而且配置文件里限定了还要在函数名上限定,但我还是做了尝试。我查看exception的cause by,一直找到自己写的一个service里,一看上面果然标注有@Transactional(readOnly = true),然后我将里面非update开头的但是执行有update操作的函数名全改了,但没改配置文件(总感觉原来配置文件也没配那么多东西),然后,还是报错。要改配置文件吗,我这牛性,就是不想改,然后又把所有涉及update的操作上面全都加上@Transactional,就近原则,这样事务处理应该不再按readonly处理了吧,运行,果然OK。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值