最近遇到一个问题,觉得挺有意思。
现在正在将一个项目从web service 转到 EJB2 (是否觉得很奇怪?),转移过程中出现了一些问题。其中一个exception如下:
java.lang.IllegalStateException: response already committed
当时第一个反应是可能页面 forward跳转或者buffer size不够了。因为我们用的是公司自己开发的web framework。所以所有的request flow control 都是封装起来了。xml配置文件之前在webservice下是可以的,页面也一直没有问题。
在网上google了一下,陈述的观点无非是response已经commit过了,也许是因为人为,也许是因为页面大小超过了page的buffer。于是乎尝试用response.setBufferSize()修改page大小,但没有效果。由于第一次遇到这样的问题,而且用的是websphere的portal和公司的framework,所以一开始找不到头绪。
确定是jsp页面的问题后,开始用最笨的方法,尝试着删减页面的代码,最后问题出在了一句代码。
HashMap map = xxxResultBean.getResultMap();
原来这个method返回的是一个TreeMap,用HashMap来reference就出现了casting的问题。由于这个Bean里面定义的field是Map,所以complie是不会有问题,直到page真的load的时候才会crash。
但问题来了,为什么之前在web service的时候没有问题,但到了EJB就不行了呢?原来在web service和EJB的时候,对class的定义会有所不同,EJB比较遵从原来的class,而web service则不太一样。
一个小问题,用最笨的方法detect。
分享到:
相关推荐
通过仔细审查代码、优化逻辑和正确处理异常,可以有效地解决"Cannot forward after response has been committed"的问题。 关于提供的"filterTest"文件,可能是用于测试过滤器功能的示例代码。分析和理解这段代码...
在Java的Web开发中,`java.lang.IllegalStateException: Cannot call sendError() after the response has been committed` 是一个常见的错误,通常发生在尝试在HTTP响应已经发送到客户端之后调用`sendError()`方法...
Section=ResponseHeader Detail=CR 后面必须是 LF The server committed a protocol violation. Section=ResponseHeader Detail=CR must be followed by LF 主体意思是微软没有容忍不符合RFC 822...
`resetBuffer()`可以清空缓冲区,`isCommitted()`检查是否已提交响应。 9. **关闭响应** 一旦响应被提交,就不能更改。但可以通过`reset()`来清除所有设置,使响应回到初始状态。然而,一旦客户端开始接收数据,就...
在探讨数据库事务隔离级别时,Read Committed(简称RC)是一个重要的概念。RC隔离级别意味着,当事务运行期间,如果别的事务对数据进行修改并且提交了,当前事务是可以读取到这些修改后的数据的。然而,这也导致了不...
但是,它仍然可能存在不可重复读(non-repeatable read)和幻读(phantom read)的问题。 3. **可重复读(Repeatable Read)**:这个级别保证在事务内部,多次读取相同数据会得到相同结果,防止不可重复读。然而,...
Response already committed. 的异常。解决方法是升级到 6.1.0.17 版本。 9. 修改 Websphere 的 JSP 编译 JDK 版本 修改 Websphere 的 JSP 编译 JDK 版本可以解决一些问题。修改方法是,找到发布之后的应用目录,...
例如,当你发现某个错误并想要回滚到某个已知的正常版本时,可以使用PREV和COMMITTED来确定问题出现的时间点。同时,BASE和HEAD用于保持你的工作副本与远程仓库同步,确保你始终在处理最新的代码。 在实际开发中,...
##### 传统方法的问题 - **第一种方法**:虽然能够证明数字属于较小的区间,但是计算成本过高。该方法通常涉及到复杂的数学运算,比如大量的指数运算,这使得实际应用中效率低下。 - **第二种方法**:虽然计算...
总结来说,Read Committed隔离级别通过ReadView机制实现了对数据一致性的重要保障,允许并发事务高效地运行而不引入脏读问题。理解这一机制有助于我们更好地设计和优化数据库事务,以满足不同场景下的需求。在实际...
NEW *-在侧面菜单中添加了Committed源代码的链接,以便任何有兴趣的人都可以参与! 更新3.0.2-您现在可以选择将待办事项存储在本地存储或Chrome存储中-漏洞修复更新3.0.1-创建待办事项列表-添加待办事项的链接-...
在读取文件并写入输出流的过程中,我们检查`ServletResponse`是否已提交(`isCommitted()`)以及`ServletOutputStream`是否已被关闭(`isClosed()`)。如果任一条件满足,就立即跳出循环,避免不必要的数据传输和...
- **读已提交(READ COMMITTED)**:防止脏读,但可能出现不可重复读。 - **可重复读(REPEATABLE READ)**:MySQL默认级别,防止脏读和不可重复读,但可能出现幻读。 - **串行化(SERIALIZABLE)**:最严格的...
11. **java.io.IOException: response already committed** HTTP响应已提交,无法再次修改。确保在HTTP响应被发送给客户端后不再尝试修改它。 12. **java.lang.ClassCastException: org.apache.catalina.util....
`response.isCommitted()`方法用来检查是否已经将数据发送到客户端。 【服务端重定向】 重定向分为以下三种方式: 1. **使用`response.sendRedirect()`**:此方法修改HTTP响应头,告诉浏览器加载新的URL,实现...
HP部分笔记本,重写BIOS或更换主板后,开机提示“WANING!!-Machine is not in committed state!”屏幕出现"主机处于未定义状态"警告。
语言:English (United States) 管理您的NewTab中的每周目标和Todos *警告* 这是一个不稳定的版本,用于测试未发布的功能。 稳定版本:https://chrome.google.com/webstore/detail/commited-newtab-todo-和/...
Read Committed 隔离级别可以避免脏读问题,但是它不能避免不可重复读、虚读和第二类丢失更新问题。 四、Read Uncommitted 隔离级别 Read Uncommitted 隔离级别是最低级别的隔离级别,它不能避免任何并发问题。在...
version 0.1.7. Now much more stable and stable. welcome to try. please rename the file ext to \"xpi\". 博文链接:https://babyheart.iteye.com/blog/44619