ssh框架开发中遇到的部分问题及解决方法

ssh框架开发中遇到的部分问题及解决方法,第1张

ssh框架开发中遇到的部分问题及解决方法,第2张

一开始遇到很多Struts+spring+hibernate的郁闷问题,让我觉得异常艰难。当你遇到一些问题,慢慢解决,你会觉得不那么痛苦,一般的问题都能解决!现在把它放到博客里。一是方便复习,二是为正在学习ssh框架的同行提供一些经验。
使用junitStrutsTest时,错误:
Java . lang . unsupported class version错误JUnit FrameworkTestListener(不支持的major.minor版本49.0)
原因是如果是jdk1.4,只能在junit3.8以下使用,如果是jdk1.5,必须在junit4.0以上使用
javax.servlet.servlet异常无法检索到action companyNews的映射:
没有与公司新闻相关的操作
无法加载或实例化TagLibraryValidator类org . Apache . taglibs . standard . TLV . jstlcoretlv:
standard . jar未放在lib中或与其他版本冲突
hibernate3,对象中一对多的一方,必须编写Private set payments = new hashset();否则java.lang.NullPointerException是错误的,
和hibernate2中的private set payments但是不要报错;
abstratsaveeventlistener-生成的标识符1,使用策略org . hibernate . id . increment generator
org . hibernate . propertyvalueexception not-null属性引用了null或瞬态值com . XXX . yyy . company
at . hibernate . engine . nullability . checknullability(nullability . Java 72)
多对一应设置为not-null=false,设置为not-null=true以报告上述错误
javax . naming . namenotfundxml文件有配置错误,大提示导致hibernate_connection_factory无法绑定到数据库。
例如,设置多对一后,冲突的属性属性仍然设置在其中。
加载时需要加载Java . lang . illegalargumentexception id
原因:session.load (company.class,payform . getcompanyid());
load()方法的第二个参数必须是可搜索的,并且必须与数据库映射类的属性值类型一致,即使是强制转换。
org . hibernate . lazyinitiationexception无法初始化代理-所属会话已关闭
解决方案。
cmpy =(company edit)ss . load(company edit . class,company id 1);
hibernate . initialize(cmpy);初始化cmpy,否则ss.close()后,Cmpy就会消失。
或join lazy=false取消延迟加载,但会影响性能
部署因底层项目内容发生变化而过期。您需要手动“重新部署”项目来更新已部署的档案。
原因
拒绝访问Tomcat中部署的文件会影响部署。
重新启动后,删除tomcat中部署的文件。在eclipse中重置部署。
[WARN]JDBCExceptionReporter-SQL错误904,SQLSTATE 42000
[Error]JDBCException Reporter-ora-00904无效的列名
[INFO]DefaultLoadEventListener-执行加载命令时出错org . hibernate . exception . sqlgrammarexception无法加载实体[com . XXX . yyy . sell INFO # 1]
org . hibernate . exception . sqlgrammarexception中的列名
连接管理器-未关闭的连接,忘记在您的会话上调用Close()
原因:没有关闭hibernate的会话的事务。或者session
[warn]sellcomentdao-org . hibernate . objectdeletedexception删除的对象会被cascade重新保存(remove
Delete object from associations)[com . XXX . yyy . sell comment # 7]
原因:当父对象(一方)设置cascade=save-update时,直接删除子对象会报错。
处理方式:保存信息需要级联操作,删除时也要用同样的原理。
sell comment sell comment = new sell comment();
sell comment =(sell comment)session . load(sell comment . class,sell comment id);获取子对象
longsellinfoid = sell comment;getsellinfo();getsellid();获取父id
sellinfo sellinfo =(sellinfo)session . load(sellinfo . class,sellinfoid);获取父对象
sellinfo.getsellcommands()。移除(sell comment);断绝父子关系
sell comment . setsellinfo(null);切断父子关系
方法二:修改cascade=all不太好。可能其他地方不需要冗余级联,会降低性能。
前几天我发现以前工作正常的系统总是报错“无法从jar文件读取TLD”meta-INF/TLDs/struts-bean . TLD。[/ Br/]具体错误消息为:
http status 500-type exception report[/Br/]消息[/Br/]描述服务器遇到了一个内部错误(),使其无法完成此请求。
exception
org . Apache . jasper . jasper exception:/index . JSP(1,1)无法从jar文件中读取TLD " meta-INF/TLDs/struts-bean . TLD "
" file:* * * * */we b-INF/lib/servlet . jar ":
原因:测试发现工程的lib文件夹下的jar被更新了,发布时也发布了。他们有冲突
解决方法:
方法一:删除jsp-api.jar解决这个问题。
方法二:将Tomcat改为6.0
我的解决方案:删除servlet.jar以及与servlet相关的jar文件。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » ssh框架开发中遇到的部分问题及解决方法

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情