程序调试错误收集.docx
- 文档编号:8981754
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:20
- 大小:29.25KB
程序调试错误收集.docx
《程序调试错误收集.docx》由会员分享,可在线阅读,更多相关《程序调试错误收集.docx(20页珍藏版)》请在冰点文库上搜索。
程序调试错误收集
一.Java程序调试与错误收集
1.Web程序的调试与排错:
尽量使用System.out.println();和打印hql语句的方式跟踪查错
(1).非代码引起的报错
①.jar包引起的错误:
当从版本控制器上下载项目时,如果项目报错但是所有类文件和配置文件和所有手动建的包都没有报错的情况时是因为项目中的jar包有错,修改或删
除jar包即可
②.编译器版本不合报错:
当启动服务器或部署项目时控制台打印有:
*java.lang.UnsupportedClassVersionError:
Badversionnumberin.classfile的异常语句时是因
为当前MyEclipse使用的jdk版本和项目创建时的jdk版本不合而引起的,进入MyEclipse>Window>Preferences>点击弹出的对话框左边的树形菜单中的"Java"项下的Comp
iler项>点右边显示框中Compilercompliancelevel:
右边的下拉列表并选择和创建项目时的jdk版本相同的jdk版本号>点击右下角的"Apply"按钮>点击击右下角的"Ok
"按钮即可
③.当控制台或页面上打印org.apache.jasper.JasperException:
Theabsoluteuri:
cannotberesolvedineitherweb.xmlo
rthejarfilesdeployedwiththisapplication的异常语句时,是因为缺少jar包或jar包版本不对或web.xml配置问题
方法一:
在工程中导入JSTLjar包后(把*.jar和*.tld放到/WEB-INF/lib目录下)在JSP页面中导入<%@tagliburi="/WEB-INF/lib/c.tld"prefix="c"%>
方法二:
修改web.xml(加上下面语句)
再在JSP文件中导入<%@tagliburi="/WEB-INF/lib/c.tld"prefix="c"%>
④.当代码、配置文件和路径都没有错时,但是它总是报以前的错或不出效果,是因为服务器中任然还残留以前的代码,将服务器中的项目彻底删除后重新部署即可
⑤.当两个页面同时访问同一个资源时(),如果代码完全一样但一个可以访问另一个却不能访问(报404错)时,可能是因为另一个页面中有以下代码:
<%Stringpath=request
.getContextPath();StringbasePath=request.getScheme()+":
//"+request.getServerName()+":
"+request.getServerPort()+path+"/";%> th%>"> ⑥.当访问页面时,如果确认路径和页面都存在却报404错误,关闭服务器再启动试一试(重启编译器不行),或将项目从服务器上和编译器上删除,重新导入另外备份的同一项 目并重新部署,如果重新部署后报错,则是xml文件配置错误,如果不重新部署后不报错即可 ⑦.404错误解决: 当程序出现404路径错误时,如果实在找不到有什么错误,就用鼠标放到要找的超连接上,再看浏览器最下面的状态栏的路径是否和当前文件的路进相对 ⑧.当重新部署项目到服务器时,如果部署完后控制台什么也没有打印并当重新访问项目的页面时路径和页面都存在却报404错误,关闭服务器再启动试一试(重启编译器不行) ⑨.在浏览器中出现404/400页面,检查Web是否正确部署到服务器及浏览器地址栏中输入的地址和端口号是否正确还要看项目名>Propertics>MyEclipse>Web>Contextroot >WebContext-root右边的名称是否和/项目名一样,Jsp文件只能放在WebRoot目录下 ⑩.在浏览器中出现"无法显示网页"的页面,检查Tomcat服务是否启动和正确运行及浏览器地址栏中输入的地址和端口号是否正确、再检查是否部署服务器 11.在浏览器中出现500/503页面,说明有语法/逻辑错误,或未打开服务器 12.当服务器无法启动(即: 马上启动又马上关闭时)是因为端口一直被另一个程序占用的原因,可以打开任务管理器结束占用该端口的进程,也可以重启电脑解决该问题 13.部署项目到服务器时发生的错误: 当部署项目时,如果部署到某时突然发生错误,把服务器上现有的项目删除后再重新部署即可 14.MyEclipse中启动Tomcat报Couldnotfindthemainclass错: (意思是找不到Ant的主类,原因是MyEclipse中的ANT_HOME指向不对)Window>Preferences>Ant>Runtime> 单击右边显示框中的Classpath标签项>选中其中的AntHomeEntries项>单击右边的AntHome按钮将AntHomeEntries的指向改为MyEclipse插件目录(MyEclipse安装盘 符: *\Genuitec\Common\plugins)下的org.apache.ant_1.7.*.v200**\lib 15.当打开/重启编译器(MyEclipse)后项目/代码报错(之前没有报错(重新打开/重启编译器后报错)或代码和逻辑都没有错,点击错误前面的错误提示图标后提示有Change WorkspacecomplianceandJREto1.5的信息),是因为工作空间配置不对,点击错误前面的错误提示图标再双击ChangeWorkspacecomplianceandJreto1.5即可 注: 当做有Hibernate的项目时,如果程序不报错,逻辑上也找不到不对的地方时,可将控制台打印的hql语句转换成sql语句后的语句复制到数据库中执行,以检查hql语句的错 误 (2).代码错误导致报的错 ①.当页面/控制台报错时(没有遇到过的错/看不懂的错),先看错误信息中的错误信息来源于哪个类/方法/哪行代码,在根据那行代码多试几中方法 ②.保存时发生的错误: 当jsp文件中的内容改变,要保存的时候,要先把第一行的pageEncoding属性值设置为utf-8,否则将报错不能保存 ③.启动服务器报错,可能的错误有: 配置文件有错,也可能是JSP页面中的标签有错(此时它不一定报正在使用的程序的错,有可能报其他程序的错),可以在服务器的webapps 目录下把标签有错的项目删除 ④.JavaBean引起的错误: JavaBean的属性名首字母必须小写,否则即使再dao层、server层和servlet中可以取得其中的值,在Jsp页面中无论用什么方法都不能取得 ⑤.当不出现预想的效果时,如果确认不是浏览器缓存所致,但又找不出错误和原因并浏览器状态栏左边出现有"网页上有错误"的消息时,双击此消息>单击弹出框中的"显示 详细信息"按钮查看错误(其中的"行"和"错误"说明了错误的位置和原因) ⑥.当在jsp页面中用 foreach>和EL表达式不能取到值时,应当首先检查是否导入c: 标签库,再检查JavaBean的所有属性名首字母是否是小写 ⑦.当导入一个包报错时,如果包名确认无误且当鼠标放在包名上提示Theimportjava....conflictswithatypedefinedinthesamefile时,表示声明的类名和导入 的包名冲突 ⑧.当控制台出现有java.lang.ClassNotFoundException: 的错误时,说明项目找不到Servlet,可能是web.xml中没有配置或配置错误,如果确认配置没有错但仍然报此错误时 就把web.xml中对应的Servlet的节点删除,同时也把对应的Servlet删除重新新建 ⑨.当一个jsp页面要有上传的功能时,要在form表单中加一个enctype="multipart/form-data"属性,但是在jsp页面的form表单中加了该属性后,该表单中的所有控件(包括 隐藏表单域)的值在servlet中不能用一般的方法获得,必须加判断那些是普通控件那些是上传文件的控件,再用别的方法获取,所以这时用作传参数的隐藏表单中的参数 必须加在form表单的action属性中来传递,其方法是: action="servlet? name=value"(即: 这时隐藏表单必须用action代替),这时在servlet中才能用一般的获取值的方法 获取jsp页面传来的值 ⑩.当一个jsp页面跳到servlet后又经过servle逃到另一个jsp页面,页面出现乱码时,是因为没有在servlet中设置请求流和相应流的编码方式,response.setContentType( "text/html;charset=utf-8");request.setCharacterEncoding("utf-8"); 11.当控制台出现有"...将截取字符串错误..."的错误时,是因为数据库相应字段的数据长度不够 12.当访问任意一个页面都出现404错误时或当启动Tomcat服务器在控制台打印相关报错语句时,可能是因为web.xml或其他xml配置文件配置错误也可能是因为导入的jar包 冲突. 13.当控制台出现有com.microsoft.sqlserver.jdbc.SQLServerException: 到主机的TCP/IP连接失败。 .ConnectException: Connectionrefused: connect的错误时 可能是因为数据库的端口号不对,打开SQLServer配置管理器中的SQLServer2005网络配置中的SQLEXPRESS的协议的TCP/IP中的IP地址项中的所有TCP端口都设置对, 并将其中的活动和已启用项设为是/yes和协议项中的全部侦听、无延迟、已启用都设为是/yes,再重新启动SQLServer2005服务中的SQLServer(SQLEXPRESS)即可 14.当从servlet或Action跳到一个查询或修改的页面时,如果报500错误并在控制台打印javax.el.PropertyNotFoundException: Property'PropertyName'notfoundon type...,可能是因为目标页面中的 forEach>的items的值写成了直接用""引起的字符串,items的""中应该用EL取值,即应该是items="${List或Object}",或者是EL中 的对象/属性名和javaBean中的不同(应仔细检查) 15.如果在使用 forward>之前jsp文件已经有了数据,文件执行就会出错 16.当控制台出现有java.lang.SecurityException: class"org.objectweb.asm.CodeVisitor"'ssignerinformationdoesnotmatchsignerinformationofotherc lassesinthesamepackage的安全异常时,是因为包冲突引起的 17.当控制台出现有com.microsoft.sqlserver.jdbc.SQLServerException: Invalidobjectname'数据库名.dbo.表名/视图名'错误时,是因为数据库中不存在指定的表名 18.当控制台出现有Couldnotinstantiatebeanclass[完整的包名+类型]: Constructorthrewexception;nestedexceptionisjava.lang.Error: Unresolvedcompi lationproblem: The一段报错的语句cannotberesolved的错误异常时是因为后台有报错的代码,改正报错的代码即可 19.当控制台/页面报有java.lang.ClassCastException: ...的错时,可能是因为数据类型装换时不对,或javabean封装/转换不对 3.总是在控制台提示"该连接已被关闭"时,是因为dao层的connection被声明为全局的(),改connection为局部即可 4.当重新部署项目到Tomcat报错或部署项目时选Tomcat不能Finish时,是因为Tomcat的路径(Window>Preferences>MyEclipse>ApplicationServers>Tomcat>Tomcat6.x>Tomcat homedirectory、Tomcatbasedirectory、Tomcattempdirectory的路径应为Tomcat安装路径的根目录,即...Tomcat6.0目录)没有选对 5.Ajax出现的错误: (1).当控制台出现java.lang.SecurityException: ScriptnamesmayonlycontainJavaIdentifiers的错误时,可能是因为jsp页面中的 rc="dwr/interface/dwr/aDS.js">代码错误,可以把此代码中的interface/后的dwr/去掉 (2).当保存web.xml在控制台出现java.lang.reflecst.InvocationTargetException的错误时,可能是因为web.xml中Ajax配置节点的所有 t-name>节点有错,此节点中的dwr-必须有 (3).当控制台出现有警告: Pagenotfound.pathInfo='? /? /? .js'requestUrl='? /? /? .js'(? 代表***路径)类似的信息时,是因为jsp页面上的 t"src="? /? /*.js">代码中的src中的路径错误 6.CVS出现的错误: (1).不能提交或提交时报错: 确认客户端和服务器端是连接上的,或因为MyEclipse上的版本低于CVS服务器上的版本,则先Update (2).Update或Commit失败时,首先看计算机是否连接上和服务器端的防火墙是否关闭 (3).当客户端能连接上服务器端(即能ping通并能共享文件)但又不能下载项目/Update/Commit时是因为服务器端的防火墙没有关闭 7.Hibernate出现的错误: (1).在New一个数据库连接时,如果新建成功但连接不上数据库,这可能是因为ConnectionURL项处输入的连接地址中的端口和数据库名不对,或者在连接时突然弹出一个标题为 Error的报错窗口并在第二行提示TheTCP/IPconnectiontothehosthasfailed...时,是因为SQLServer配置管理器/SQLServerConfigurationManager中的(资源管 理窗口中的)SQLServer配置管理器(本地)/SQLServer2005网络配置/MSSQLSERVER的协议中的TCP/IP状态为已禁用(TCP/IP状态为已禁用是因为其属性中的协议项的已启 用值为否(应该为是),和IP地址项的已启用值为否(应该为是)) (2).不能将表映射为JavaBean的错误: ①.当生成JavaBean找不到要生成到的项目时,是因为在导如Hibernatejar包时,到步骤"选DBDrever右边的下拉选项中选创建的数据库连接名称"时没有选择所创建的数据 库连接名称 ②.当生成JavaBean不能生成(生成失败)时,是因为项目中没有导入Hibernatejar包 (3).当控制台出现有org.hibernate.MappingException: Unknownentity: entity.JavaBean的错误时,说明没有在Hibernate.cfg.xml文件中加 aBean.hbm.xml"/>映射文件的标签 (4).当控制台出现有org.hibernate.id.IdentifierGenerationException: idsforthisclassmustbemanuallyassignedbeforecallingsave(): entity.NetBar的错误时 说明没有把Hibernate.cfg.xml文件中的主键生成器标签 (5).当控制台出现有Exceptioninthread"main"org.hibernate.HibernateException: /hibernate.cfg.xmlnotfound的错误时,是因为hibernate.cfg.xml没有放在src的根 目录下,hibernate.cfg.xml文件必须放在src根目录下才可以. (6).在有多对一的关联映射中,当控制台出现有Exceptioninthread"main"org.hibernate.LazyInitializationException: couldnotinitializeproxy-theowningSes sionwasclosed的错误时,是因为没有在多的方的hbm.xml文件的many-to-one节点中配置lazy="false"属性(lazy是延时加载,值为false时关闭延时加载) (7).当控制台出现有Exceptioninthread"main"org.hibernate.LazyInitializationException: couldnotinitializeproxy-theowningSessionwasclosed的错误 时,说明 (8).当控制台出现有Exceptioninthread"main"org.hibernate.PropertyAccessException: exceptionsettingpropertyvaluewithCGLIB(sethibernate.cglib.use_r eflection_optimizer=falseformoreinfo)setterofentity.Computer.setNetBar的错误时,说明 (9).当控制台出现有org.hibernate.HibernateException: Illegalattempttoassociateacollectionwithtwoopensessions的错误时,是因为dao层所有方法的最后没 有关闭session(即: 没有session.close();) (10).当控制台出现有java.lang.OutOfMemoryError: PermGenspace的错误时重启服务器即可 (11).当执行了dao层的方法返回正确的结果但数据库中的数据仍然没有改变时,可能是dao层的方法中没有执行事务提交的方法commit(); (12).当控制台出现有...idsforthisclassmustbemanuallyassignedbeforecallingHibernate方法(): JavaBean所在的包.JavaBean名;nestedexceptionisorg.h ibernate.id.IdentifierGenerationException: idsforthisclassmustbemanuallyassignedbeforecallingHibernate方法(): JavaBean所在的包.JavaBean名Ca
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序 调试 错误 收集