如果解决不了我还能去哪里??will 绝望! 应该是每个ejb都打开和关闭自己的数据库连接。建议把EJB3的事务属性设置成NotSurport,应该可以避免刷新的问题。顺便说一下,听起来EJB3的操作完全可以在EJB2的那个方法里面一起完成吗 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 反对,jdbc建立数据库连接是很耗费资源(和执行查询比较),如果每个ejb都有自己的连接,会使系统很慢,应该使用连接池。 楼上的兄弟,如果楼主做过企业级的开发他自然会使用连接池的,但从编程着角度来说还是要从程序里面打开和关闭连接,连接池优化只是服务器提供的功能而已。没理由我打开一次连接就可以无止境地使用它:)。这也是我的一个疑问,因为如果数据库再一次正常操作后关闭了,就不应该报楼主说的那个问题,所以我怀疑楼主是用的一个数据库连接做的一系列操作:)。刚才的回复不知道有没有效,可能把事务属性设成Never更好一些 很对不起我写错了。是EJB1调用EJB2后再调用EJB3。太对不起了!!!!!EJB3不能在2中实现,因为3中的方法既要用到2的结果,又要用1中直接接收的参数。所以必须在1中调用2和3。另外,已经使用了连接池(thin),javabean中的连接方法就是ds=(DataSource)ctx.lookup("DataSource");conn=ds.getConnection();在EJB2调用了一次连接的方法,理论上就可以在在各处使用?可是我在EJB3中又生成了新的javabean的实例呀,所以只得再次连接,而且是每个方法里都进行连接和关闭。热切期盼着……@ @ 这样做没错的,每次调用都打开和关闭连接。对那个错误,我还是建议把EJB3的事务属性改成Never,或者干脆把三个EJB的事务属性都改成Never好了。 我尝试按你的建议改属性,可是我发现我的工程中没有ejb-jar.xml文件,但是在工程的打包文件中有,可无法写,只能眼巴巴的看,怎么办?刚才趴在桌子上睡着了,所以来晚了…… 没用jbuilder呀?那就解压出来,改完,在添加进包里面去:) 改好了添加进包winrar有add file... 改为了never。CreAndExeUpdateSql 是EJB2调用的EJB3中的一个方法。报错为下:javax.ejb.EJBException: Method CreAndExeUpdateSql is ed TX_NEVER, but was called within a transaction.我觉得不该是never,这样把的数据库操作排除在事务之外,违背了使用事务的初衷。你觉得呢? 解决了解决了!!!原来我把连接数据库的方法写在EJB3的create()中了,然后方法中就直接使用数据库操作的方法了。现在我在每个方法中都使用连接的方法,然后操作,然后关闭。就没问题了。可以多次刷新,出错也可以回滚。谢谢各位!各EJB属性仍用默认的require,不做改变。lzl123()接分啦。^o^ 那么是不是可以这样说:如果EJB中有跨方法存在的数据库连接,就会出现刷新页面出错的问题?这个问题还有值得研究的地方。而且我始终觉得通过配置适当的事务属性可以避免那个事务问题的,我们用EJB不一定非要使用它的事务处理,否则事务属性怎么会有Never存在:) 初学Struts,Action不响应的问题 SQLException:不能以 DISTINCT 方式选择 text、ntext 或 image 数据类型 ssh 如何实现退信功能 web工程子目录下的jsp页报错 JPA级联关系操作遇到问题,请教大神!!! 再问如何关闭数据库连接 jbuilder X配置Struts jdbc连接池遇到问题请高手帮忙,在线等. Struts源码研究发现的一个问题 一个xml的问题 题外话:如何在WIN2000里一次性关掉20个网页? jbuilder的samples为什么编译出错
刚才的回复不知道有没有效,可能把事务属性设成Never更好一些
EJB3不能在2中实现,因为3中的方法既要用到2的结果,又要用1中直接接收的参数。所以必须在1中调用2和3。
另外,已经使用了连接池(thin),javabean中的连接方法就是
ds=(DataSource)ctx.lookup("DataSource");
conn=ds.getConnection();
在EJB2调用了一次连接的方法,理论上就可以在在各处使用?可是我在EJB3中又生成了新的javabean的实例呀,所以只得再次连接,而且是每个方法里都进行连接和关闭。
热切期盼着……@ @
对那个错误,我还是建议把EJB3的事务属性改成Never,或者干脆把三个EJB的事务属性都改成Never好了。
刚才趴在桌子上睡着了,所以来晚了……
winrar有add file...
报错为下:
javax.ejb.EJBException: Method CreAndExeUpdateSql is ed TX_NEVER, but was called within a transaction.
我觉得不该是never,这样把的数据库操作排除在事务之外,违背了使用事务的初衷。你觉得呢?
原来我把连接数据库的方法写在EJB3的create()中了,然后方法中就直接使用数据库操作的方法了。现在我在每个方法中都使用连接的方法,然后操作,然后关闭。就没问题了。可以多次刷新,出错也可以回滚。谢谢各位!
各EJB属性仍用默认的require,不做改变。lzl123()接分啦。^o^