`

struts+hibernate项目debug总结

 
阅读更多

struts+hibernate项目debug总结

javax.servlet.ServletException: Cannot retrieve mapping for action /companyNews

struts-config.xml中没有写相关companyNews的action.

============================================
在myeclipse增加一个jar包时候,先打开项目properties,选择java build path --> libraries -->add external JARs 选择到需要的jar包,加入后,发现,他这个包加载的是绝对路径,而我们的项目需要cvs共享,无法

commit到cvs服务器。myeclipse有以下提示信息:
2 build path entries are missing.

解决办法是,关闭myeclipse,用notepad打开项目目录下的 .classpath, 手动修改成相对路径,并且检查,指定的相对路径中是否真正添加了jar包,
启动myeclipse就可以上传新添加的jar包了。


=============================================
在使用junit/StrutsTest时候,报错:
java.lang.UnsupportedClassVersionError: junit/framework/TestListener (Unsupported major.minor version 49.0)

原因是如果是jdk1.4的话,只能使用junit3.8以下版本,如果是使用jdk1.5的话,必须使用junit4.0以上版本。


==========================================================

Cannot find ActionMappings or ActionformBeans collection
原因是:web.xml文件中没有配置struts-config.xml的相关信息。


============================================================

org.apache.jasper.JasperException: The absolute uri: http://java.sun.com/jstl/core cannot be resolved in either web.xml or the jar files deployed with this application


缺少jstl的相关jar和web.xml配置
jstl.jar
<taglib>
<taglib-uri>http://java.sun.com/jstl/fmt</taglib-uri>
<taglib-location>/WEB-INF/fmt.tld</taglib-location>
</taglib>

<taglib>
<taglib-uri>http://java.sun.com/jstl/fmt-rt</taglib-uri>
<taglib-location>/WEB-INF/fmt-rt.tld</taglib-location>
</taglib>

<taglib>
<taglib-uri>http://java.sun.com/jstl/core</taglib-uri>
<taglib-location>/WEB-INF/c.tld</taglib-location>
</taglib>

<taglib>
<taglib-uri>http://java.sun.com/jstl/core-rt</taglib-uri>
<taglib-location>/WEB-INF/c-rt.tld</taglib-location>
</taglib>

<taglib>
<taglib-uri>http://java.sun.com/jstl/sql</taglib-uri>
<taglib-location>/WEB-INF/sql.tld</taglib-location>
</taglib>

<taglib>
<taglib-uri>http://java.sun.com/jstl/sql-rt</taglib-uri>
<taglib-location>/WEB-INF/sql-rt.tld</taglib-location>
</taglib>

<taglib>
<taglib-uri>http://java.sun.com/jstl/x</taglib-uri>
<taglib-location>/WEB-INF/x.tld</taglib-location>
</taglib>

<taglib>
<taglib-uri>http://java.sun.com/jstl/x-rt</taglib-uri>
<taglib-location>/WEB-INF/x-rt.tld</taglib-location>
</taglib>


==========================================================

Failed to load or instantiate TagLibraryValidator class: org.apache.taglibs.standard.tlv.JstlCoreTLV


standard.jar没有放在lib里面


===========================================================

创建oracle表的时候,使用了,role和comment关键字,建议不要将这两个关键字作为表名和字段名。
建议用toad或plsql developer创建表,这样软件会提示关键字。
=============================================================

[ERROR] XMLHelper - Error parsing XML: XML InputStream(18) Attribute name "column" associated with an element type "key" must be followed by the ' = ' character.
[ERROR] Configuration - Could not configure datastore from input stream <org.dom4j.DocumentException: Error on line 18 of document : Attribute name "column" associated with an element type "key"

must be followed by the ' = ' character. Nested exception: Attribute name "column" associated with an element type "key" must be followed by the ' = ' character.>org.dom4j.DocumentException: Error

on line 18 of document : Attribute name "column" associated with an element type "key" must be followed by the ' = ' character. Nested exception: Attribute name "column" associated with an element

type "key" must be followed by the ' = ' character.

xml 语法错误,key语法中应该类似这样的写法 <key column="id">
=============================================================
hibernate3,对象中一对多的one方,必须写private Set pays=new HashSet();,否则包错java.lang.NullPointerException ,
而hibernate2中private Set pays;却不报错;

=============================================================
[DEBUG] AbstractSaveEventListener - generated identifier: 1, using strategy: org.hibernate.id.IncrementGenerator
org.hibernate.PropertyValueException: not-null property references a null or transient value: com.xxx.yyy.company
at org.hibernate.engine.Nullability.checkNullability(Nullability.java:72)

<many to one >中的设置应该设置为not-null="false" ,设置为not-null="true"则报以上错误
================================================================


org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: com.xxx.yyy.Company

在save的同时也需要save其他的表,然后再flush()
=========================================================================

Parse Fatal Error at line 12 column 1

struts-config.xml文件被修改,语法错误。检查语法。

========================================

org.hibernate.QueryException: could not resolve property: userid of: com.xxx.yyy.Pay

使用到外键userid的时候,必须使用userinfo.userid方法才能得到。

=========================================
javax.naming.NameNotFoundException: Name hibernate_connection_factory is not bound in this Context
原因:hibernate的数据库映射.xml文件有配置错误,导致hibernate_connection_factory无法绑定数据库。
例如many-to-one设置了以后,仍然在其中设置相冲突的<property>属性。

==========================================

[WARN] RequestProcessor - Unhandled Exception thrown: class java.lang.NullPointerException
必须将使用到的对象new起来。

============================================
GROUP BY 表达式的查询必须满足如下:
select 子句后的每一项必需出现在group by 子句中,除非该项使用了聚集函数。

===========================================
org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: com.xxx.yyy.Company

要级联保存,多次session.save()
==============================================
java.lang.IllegalArgumentException: id to load is required for loading
原因:

session.load(Company.class,payForm.getCompanyId());
load()方法第二个参数必须是searlizable,并且必须是和数据库映射类的属性值类型一致,即使强制转换都不行。


=============================================
[INFO] DefaultLoadEventListener - Error performing load command <org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [com.xxx.yyy.Company#0]

>org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [com.xxx.yyy.Company#0]


表示你现在查询的对象所关联的对象有问题,一般是因为数据的问题(该对象所关联的对象找不到),数据的错误,影响了程序正常执行。

========================================================
eclipse 3.1,myeclipse 4错误
Deployment is out of date due to changes in the underlying project contents . You'll need to mannally 'Redeploy' the project to update the deployed archive.
原因
tomcat 中部署的某个文件的拒绝访问影响了部署。
重启后,去除tomcat中部署的文件。重新在eclipse中设置部署。
为什么需要重启?
因为:google desktop软件正在对我部署的一个300MB大文件进行索引,锁定了这个大文件,我估计google desktop需要对这个文件索引半个小时以上。因此,eclipse无法对过去部署的文件,做先删除后重新部署的工作。

===================================================
ERROR LazyInitializationException:19 - could not initialize proxy - the owning Session was closed

org.hibernate.LazyInitializationException: could not initialize proxy - the owning Session was closed
解决办法。
cmpy=(CompanyEdit)ss.load(CompanyEdit.class,companyId1);
Hibernate.initialize(cmpy);//强制初始化cmpy,否则ss.close()后,cmpy将消失.

====================================================
javascript错误
行: 56
字符: 45
错误: 未结束的字符串常量
代码: 0

是编码的问题!用ANSI编码另存后就好了。

====================================================
[WARN] JDBCExceptionReporter - SQL Error: 904, SQLState: 42000
[ERROR] JDBCExceptionReporter - ORA-00904: 无效列名

[INFO] DefaultLoadEventListener - Error performing load command <org.hibernate.exception.SQLGrammarException: could not load an entity: [com.xxx.yyy.Sellinfo#1]

>org.hibernate.exception.SQLGrammarException: could not load an entity: [com.xxx.yyy.Sellinfo#1]

***.hbm.xml文件中的某个列名和数据库中的不同。


=======================================================
ConnectionManager - unclosed connection, forgot to call close() on your session?


原因:没有关闭hibernate的session的transaction。或者没有关闭session

=======================================================
[WARN] SellCommentDAO - org.hibernate.ObjectDeletedException: deleted object would be re-saved by cascade (remove deleted object from associations): [com.xxx.yyy.SellComment#7]

原因:父亲对象(one方)设置cascade="save-update" 时,直接删除子对象时,会报错,
处理方法:save信息需要级联操作,delete时候也要用相同的原理。
SellComment sellComment=new SellComment();
sellComment = (SellComment)session.load(SellComment.class,sellCommentId);//获取儿子对象
Long sellInfoId=sellComment.getSellInfo().getSellId();//获取父亲id
SellInfo sellinfo=(SellInfo)session.load(SellInfo.class,sellInfoId);//获取父亲对象
sellInfo.getSellComments().remove(sellComment);//断绝父子关系
sellComment.setSellInfo(null);//断绝子父关系
session.delete(sellComment);//删除儿子
session.flush();

分享到:
评论

相关推荐

    spring+struts+hibernate项目debug总结.rar

    《Spring+Struts+Hibernate(SSH)项目调试精要》 在Java Web开发领域,Spring、Struts和Hibernate组成的SSH框架组合是应用广泛的技术栈。它们分别负责不同层面的职责:Spring作为整体的容器,管理对象和依赖;...

    Struts+DAO+Hibernate的登陆

    ### Struts+DAO+Hibernate实现用户登录功能 #### 一、项目概述 本文将详细介绍如何使用Struts+DAO+Hibernate框架来实现一个基于MySQL数据库的用户登录系统。该系统不仅能够处理用户的登录验证,还能根据登录结果...

    有关jsp+struts+hibernate+MSSQLServer项目中Tomcat5的server.xml配置

    根据提供的文件信息,本文将详细解释在JSP + Struts + Hibernate + MSSQLServer项目中配置Tomcat 5 的 `server.xml` 文件的关键步骤与重要设置。这些知识点将涵盖如何在Tomcat环境下顺利运行SQL Server数据库,以及...

    Struts+Hibernate模板开发笔记

    Struts+Hibernate模板开发是一种常见的Java Web应用框架组合,用于构建高效、可维护的Web应用程序。Struts作为MVC(模型-视图-控制器)框架,负责处理HTTP请求和业务逻辑,而Hibernate则是一个对象关系映射(ORM)...

    Struts+Hibernate+MyEclipse+Tomcat+MySQL的乱码之解决篇

    在本篇文章中,我们将深入探讨如何解决Struts + Hibernate + MyEclipse + Tomcat + MySQL环境中出现的乱码问题。该问题通常出现在处理中文字符时,由于编码设置不当导致中文显示为乱码或无法正常读取。为了确保系统...

    Struts+Spring+Hibernate框架说明文档

    ### Struts+Spring+Hibernate框架说明文档 #### 一、SSH整体介绍 ##### 1. 简介 本文档详细介绍了一个基于SSH(Struts+Spring+Hibernate)三层架构的应用程序设计与实现方法。SSH架构是指由Struts、Spring和...

    struts+spring+hibernate通用分页方法

    ### Struts+Spring+Hibernate通用分页方法详解 #### 一、引言 在Web应用开发中,分页是一项常用且重要的功能。特别是在处理大量数据时,合理的分页策略能够显著提升用户体验并减轻服务器压力。Struts+Spring+...

    struts2+hibernate+spring+mysql+tomcat+log4j

    在这个集成项目中,开发者可能首先配置了Struts2的拦截器、Action类和结果映射,然后利用Hibernate的实体类、持久化配置和Session工厂来处理数据库操作。Spring则可能被用来管理Bean的生命周期和依赖,以及实现事务...

    Struts2+Hibernate整合实例

    同时,可以使用Struts2的开发插件(如Struts2 Debug Plugin)来调试Action的执行流程和结果。 6. **示例项目`Hibernate-Example-1`**: 这个压缩包可能包含了一个简单的Struts2+Hibernate整合的实例,可能包括了...

    Bug管理系统 struts2+sping2.5+hibernate3(2-2)

    本程序是作者学习struts spring hibernate构架后为了练习开发的一个小程序。开发此程序的目的是为了验证框架技术在项目中的应用。本程序尽量包含了开发当中遇到的一些问题及解决方案。同时欢迎广大网友到作者的群内...

    Bug管理系统 struts2+sping2.5+hibernate3(1-2)

    本程序是作者学习struts spring hibernate构架后为了练习开发的一个小程序。开发此程序的目的是为了验证框架技术在项目中的应用。本程序尽量包含了开发当中遇到的一些问题及解决方案。同时欢迎广大网友到作者的群内...

    maven2搭建hibernate+spring+struts2项目

    【构建SSH整合项目】 ...总结,通过Maven2,我们可以轻松地创建一个基于SSH的Web项目,并实现自动化构建和数据库管理。这种方式提高了开发效率,减少了手动配置的工作量,使得项目的构建和维护更加规范和便捷。

    struts2hibernate3spring3项目整合搭建需要的jar包

    Struts2、Hibernate3和Spring3是Java Web开发中的三个重要框架,它们分别负责MVC模式的展现层、持久层和业务层管理。将这三个框架整合在一起,可以构建出高效、灵活的企业级应用。下面我们将详细讲解在项目整合中所...

    struts2hibernate4spring4项目搭建需要的jar包

    这里提到的"struts2hibernate4spring4项目搭建需要的jar包"包含了构建这样一个集成环境所必需的库文件。下面将详细介绍这些框架的核心功能以及在项目中如何进行整合。 Struts2作为一款强大的MVC框架,它提供了丰富...

    struts2hibernate4spring4项目 源码(最初的最初)

    Struts2Hibernate4Spring4项目是一个典型的MVC架构的Java Web应用,整合了三大主流框架:Struts2作为表现层框架、Hibernate4作为持久层框架、Spring4作为业务层和服务层框架。这样的组合使得开发人员能够高效地进行...

    struts2hibernate4spring4项目搭建需要的jar包(比较新的)

    在这个“struts2hibernate4spring4项目搭建需要的jar包”中,包含的是最新版本的框架库,以适应现代开发需求。 首先,Struts2是基于MVC模式的Web应用框架,它负责处理HTTP请求并将其映射到特定的Action,然后返回...

    2021前端开发实习总结范文精选.docx

    前端开发实习总结系列文章概括了前端开发实习生的经验和体验,从 Struts+Spring+Hibernate 框架的应用到 JavaWeb 编程开发中的实践经验,涵盖了软件开发的整个过程,包括需求分析、概要设计、详细设计、编码和测试等...

    让Struts与Hibernate顺利协同工作

    - 修改web.xml文件,配置ActionServlet,包括配置文件路径(struts-config.xml)、调试级别(debug和detail)以及启动加载顺序。 4. **Hibernate配置**: - 创建Hibernate的配置文件(hibernate.cfg.xml),定义...

    MyEclipse 项目运行总说缺jar包,实际有,按以下方式处理就可以了

    在使用 MyEclipse 开发 Struts2+Hibernate 项目时,可能会遇到 jar 包缺失的问题,导致 Tomcat 启动时报错。本文将详细介绍该问题的原因和解决方案。 问题描述 在使用 MyEclipse 开发 Struts2+Hibernate 项目时,...

Global site tag (gtag.js) - Google Analytics