【1】 2.1 java.lang.NullPointerException 分析原因: 分析原因:当应用程序试图在需要对象的地方使用 null 时,抛出该 异常。这种情况包括: ? ? ? ? ? 调用 null 对象的实例方法。 访问或修改 null 对象的字段。 将 null 作为一个数组,获得其长度。 将 null 作为一个数组,访问或修改其时间片。 将 null 作为 Throwable 值抛出。 应用程序应该抛出该类的实例,指示其他对 null 对象的非法使用。 解决办法: 解决办法:在 Console 下面看异常,再异常打印中从上到下找,自己 写的 Java 文件中所抛的异常,分析异常,分析是那个对象没有实例 化,而直接使用,处理异常,处理此问题。 java.lang.ArrayIndexOutOfBoundsException:
[6] 2.2 java.lang.ArrayIndexOutOfBoundsException: 5 分析原因:出现此异常的原因是用非法索引访问数组时抛出的异常。 分析原因: 非法索引 解决办法: 解决办法:在 Console 下面看异常,再异常打印中从上到下找,自己 写的 Java 文件中所抛的异常,分析异常,对此进行解决。
【2】 2.3 java.lang.NumberFormatException Tarena 学员遇到的部分问题与解决办法 版本 V1.0 分析原因: 出现此异常的原因是当应用程序试图将字符串转换成一种 分析原因: 数值类型,但该字符串不能转换为适当格式时,抛出该异常。 解决办法:在 Console 下面看异常,再异常打印中从上到下找,自己 解决办法: 写的 Java 文件中所抛的异常,分析异常,对此进行解决。特别声明 的是 request.getParameter("id")在 web 开发时,id 没有正确的传 入,同样出现此异常。
【3】 2.4 java.lang.ClassCastException: java.lang.Integer cannot java.lang.ClassCastException: be cast to java.lang.String 分析原因: 出现此异常的原因是当应用程序试图将对象强制转换为不 分析原因: 是实例的子类时,抛出该异常。例如,以下代码将生成一个 ClassC -astException: Object x = new Integer(0); System.out.println((String)x); 解决办法: 解决办法:一般在把 x 在转化之前,请使用 instanceof 做判断
【4】 2.5 java.io.FileNotFoundException: 这里报错的是需要找的资 java.io.FileNotFoundException: 源路径(d:\xupb\3.jpg) 系统找不到指定的文件。 源路径(d:\xupb\3.jpg)(系统找不到指定的文件。) 分析原因: 出现此异常的原因是当试图打开指定路径名表示的文件失 分析原因: 败时,抛出此异常 解决办法: 解决办法:在 Console 下面看异常,再异常打印中从上到下找,自己 写的 Java 文件中所抛的异常,分析异常,查找自己那个文件或者图 片没有放入指定位置,或者查看自己的文件名是否书写正确。 Tarena 学员遇到的部分问题与解决办法 版本 V1.0 方面:
【5】 三、JDBC 方面 java.sql.SQLException:
【6】 3.1 java.sql.SQLException: Access denied for user 'roota'@'localhost' (using password: YES) 分析原因: 出现此异常的原因是需要连接数据库的用户名或者密码有 分析原因: 错误 解决办法: 解决办法:修改连接服务器数据库的用户名或者密码
【7】 3.2 java.sql.SQLException: Statement parameter 1 not set. java.sql.SQLException: 分析原因: 分析原因:出现此错误的原因是,根据用户名查找用户时,或者根据 id 查找用户时,或者根据 id 删除用户时,没有将指定参数设置为给 定的值,即 ps.setXxx(xxx,xxx) 解决办法: 解决办法:查看异常,从上往下找自己写的 java 中所抛的异常信息, 确认之后,将其对应的代码修改,即:将指定参数设置为给定的值
【8】 3.3 java.sql.SQLException: error java.sql.SQLException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' friend_user where id=1' at line 1 分析原因: 分析原因:出现此错误的原因是书写的 sql 有错误 解决办法: 检查需要执行的 sql 语句, 首先在数据库中执行这个 sql, 解决办法: 看是否能正确执行。 java.sql.SQLException: value
【9】 3.4 java.sql.SQLException: No value specified for parameter 1 Tarena 学员遇到的部分问题与解决办法 版本 V1.0 分析原因: 分析原因:出现此异常的原因是没有指定参数 解决办法: 检测自己写的 Java 代码, 看是否指定了参数,如: stat.set 解决办法: -String(int,String),供参考。 java.sql.SQLException:
【10】 3.5 java.sql.SQLException: No parameters defined during prepareCall() 分析原因: 分析原因:出现此异常的原因是,根据 id 查找某个对象时,where 没 有写条件;或者根据 name 查找某个对象时,where 没有写条件;或 者根据 id 删除某个对象时,where 没有写条件。 解决办法: 解决办法:查看异常,从上往下找自己写的 java 中所抛的异常信息, 确认之后,将其对应的代码修改,添加相应的条件。
【11】 3.6 java.sql.SQLException: Parameter index out of range (1 > java.sql.SQLException: number of parameters, which is 0). 分析原因:是因为你要执行的 sql 里参数超过你声明的个数,或者是 分析原因: sql 语句少了问号。 解决办法: 解决办法:检测 sql 语句是否书写正确。 java.lang.ClassNotFoundException otFoundException:
【12】 3.7 java.lang.ClassNotFoundException: com.mysql.jdbc. Driver 分析原因: 分析原因: 出现此异常的原因是当应用程序试图使用以下方法通过字 符串名加载类时,抛出该异常,分类如下: ? ? Class 类中的 forName 方法。 ClassLoader 类中的 findSystemClass 方法。 Tarena 学员遇到的部分问题与解决办法 版本 V1.0 ? ClassLoader 类中的 loadClass 方法 但是没有找到具有指定名称的类的定义。 解决办法: 解决办法:在 Console 下面看异常,再异常打印中从上到下找,自己 写的 Java 文件中所抛的异常,分析异常,查看自己写的 forName 中 的值是否正确,或者有没有空格之类。
【13】 方面: 四、Android 方面
【14】 4.1 系统报错: 系统报错: Error the user data image is used by another emulator. Aborting 分析原因: 分析原因:原来出现这种现象的原因是没有正确的关闭模拟器导致 解决办法:在 C:\Documents and Settings\ *用户目录* \.android\avd \* 解决办法: 设备名*\ 然后删除掉以.lock 结尾 ude 文件夹。 .lock 表示加锁的意思。如果非法关闭模拟器导致系统没有及时的清 除.lock 文件夹的话,avd 就一直处于加锁的状态,此时 avd manager 就会以为这个 avd 仍在使用当中
【15】 4.2 在/res/drawable 下面将一个.ico 图片直接重命名加载,报错! 下面将一个.ico 图片直接重命名加载,报错! “ERROR: Failure processing PNG image ERROR: D:\workspace\res\drawable\launcher_icon.png D:\workspace\res\drawable\launcher_icon.png” 分析原因: 分析原因:图片的格式有问题。比如说,你将一张 jpg 的图片重命名 成.png 的格式,在放 到资源文件中去,它就会报错。 解决办法:a.那 ps 或者画图等工具来该,不能直接改后缀名。不过 解决办法: 这样转成的文件会有背景,接下来还要去除图片背景很麻烦! Tarena 学员遇到的部分问题与解决办法 版本 V1.0 b.图片命名的时候不适用大写字母。 c.使用 AveIcon 工具将系统图标文件.ico 文件转成.png。
【16】 4.3 DDMS SD 卡文件没权限,怎么解决 卡文件没权限, 分析原因: 分析原因:a. 原先没有创建好虚拟的 SD 卡镜像文件,或用别的镜像 编辑工具改动过,虚拟的 SD 卡镜像文件已被破坏;b. 可能是虚拟机 运行过程中没有正常退出,镜像文件被锁定了,或 SD 卡没有空间 解决办法: 解决办法:重新创建一个虚拟机,在创建时指定新建一个 SD 卡镜像 文件 (或是用命令行创建一个 SD 卡镜像, 并指定给你新建的虚拟机, 也可不重新创建虚拟机,只是重新指定一下虚拟 SD 卡镜像文件)
【17】 4.4 Android 中 logcat 中不打印信息怎么解决 分析原因: 分析原因:是关掉 android 下的 devices 影响的 解决办法: 解决办法:点击 window-->show view-->选择 android 下的 devices,打 开 devices,点击右边的截屏图片。等到出现截图的时候,logcat 就出 来信息了
【18】 4.5 could not find virtual device named 'XXX' 的解决方法 分析原因: 分析原因:放置的.android 路径不对 解决办法: 在 创建后 avd 解决办法: Android Virtual Devices Manager 中创建 avd, 的存放路径是“D:\.android”,因为我的 XP 系统默认文件的路径都修 改过所以“C: \Documents and Settings\Administrator”改成了“D:”,既然 Eclipse 提示它找不到 avd,是不是跟这个有关系呢,我试了试将 “.android”这个文件放到“C:\Documents and Settings\Administrator”下, 最后可以正常运行 Tarena 学员遇到的部分问题与解决办法 版本 V1.0
【19】 4.6 给 sd 卡写如信息,不能写入 卡写如信息, 分析原因: 分析原因:如果保证代码正常情况下,就是没有增加权限 解 决 办 法 : 在 androidmanifest.xml 文 件 中 加 入 下 面 这 句
【20】 4.7 The application has stopped unexpectedly, please try again 分析原因: 分析原因: 出现此错误是由于自己的代码是否有逻辑上的错误或者是 漏洞,例如是不是使用了一个 null 对象。 解决办法: 解决办法:查看 log 中打印的异常信息,对其分析进行处理。例如: 当你创建了一个 Activity 后需要在 AndroidManifest.xml 配置一下每 个 Activity 的 信 息
【21】 4.8 qemu: could not open disk image 分析原因:因为如果两个模拟器用的同一个 sd 的镜像文件,同时间 分析原因: 内只能起一个模拟器,模拟器在配置 sd 卡时,会把 sd 文件锁住,所 以其他模拟器用的时候就会出错。如果是不同的 sd 卡就没什么问题 解决办法: 解决办法:关掉所有模拟器,只开一个。如果不行,多试几次
【22】 4.9 在 Android 中 sqlist 数据库的使用 Tarena 学员遇到的部分问题与解决办法 版本 V1.0 F:\>sqlite3 database.db sqlite> create table admin(username text,age integer); sqlite> insert into admin values('kuang',25); sqlite> select * from admin; sqlite> update admin set username='kk',age=24 where username='kuang' and age=25; sqlite> delete from admin where username='kk';
【23】 4.10 ERROR/AndroidRuntime(10042): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.tarena.tts/com.tarena. tts.Activity00}: java.lang.NullPointerException Caused by: java.lang.NullPointerException 分析原因: 分析原因:出现此异常的原因是不能启动 activity,报空指针异常 原因 解决办法: 解决办法:首先确认 setContentView()方法里面放入 int 值,并且 是当前 activity 类或其子类,再检测那个组件是 null,进行调试。
【24】 方面: 五、Web 方面
【25】 5.1 用 alert 测试 xmlReq.readyState 状态只能是 1 分析原因: 一般出现此错误原因是 xmlReq.readyState 下面的代码有 分析原因: 错误,导致程序 xmlReq.readyState 不能正常执行。 解决办法: 解决办法:检查 xmlReq.readyState 条件下面的语句是否书写正常, 例如: 不应该把 xmlReq.responseText 这写成 xmlReq.resqponseText 事件中调用某个函数时,
【26】 5.2 用 onblur 事件中调用某个函数时,xmlReq.status 值返回的是 Tarena 学员遇到的部分问题与解决办法 版本 V1.0 405 分析原因: 分析原因:出现此错误原因是没有执行 service 中的方法 解决办法:查看 service 方法是否书写正确。另外还有一种 Ajax 采 解决办法: 用的是 post 请求,url 是 xxx.do 方式,查看 web.xml 文件中配置几 个
【27】 5.3 在页面报 405 错误 分析原因: 分析原因:出现此错误原因是服务器没有调用 service 方法。 解决办法: 解决办法:查看 service 是否写错,和 web.xml 中
【28】 5.4 在页面报 404 错误 分析原因:出现此错误原因是用浏览器访问服务器的路径写错。 分析原因: 解决办法: 解决办法:以标准的路径为准,” localhost”表示访问自己的服务器 地址;”8080”表示 Tomcat 的默认端口号;应用名在项目上面右键, 点击”Properties”, 找到 MyEclipse 下面的 web 中 Web Context-root: 中的值就是应用名; a、http://localhost:8080/应用名/ 表示直接访问项目中 WebRoot 下某个文件(这里针对 jsp 文件),该 文件必须在 web.xml 文件中配置
【29】 5.5 页面中的 500 错误 分析原因: 分析原因:出现此错误原因是 java 程序有错误,同时后台一般都会 报错 解决办法: 解决办法:根据后天所报的异常,从上到下找到自己写的 java 中所 报的异常,对其进行分析与解决。
【30】 5.6 案例上传的图片不能正常显示问题 分析原因: 分析原因:出现此错误原因是如果是上传图片成功,那么就是路径的 问题。 解决办法: 解决办法:路径”/> 此路径是:从项目名下面的所要访问 的图片的包名开始到图片的名称。例如项目名称为 shoppingcart Tarena 学员遇到的部分问题与解决办法 版本 V1.0 图片所在的位置 shoppingcart2/img/d007/xxx.jpg,那么应该这么写
【31】 5.7 注册信息时,验证码不能正常出现,需要点击“换一个”按钮才 注册信息时,验证码不能正常出现,需要点击“换一个” 可出现 分析原因: 分析原因:出现此错误原因是 img 中的 src 的值和 web.xml 中的
【32】 5.8 注册信息时,验证码正常出现,但是点击“换一个”按钮,验 证码不变 分 析 原 因 : 出现此 错 误原 因是 点击 “ 换一 个” 按钮 需 要执 行的 javascript 代码有错 解决办法:参考格式如下: 解决办法: 这 里需要填写取得那个验证码id号的值').src = '这里需要填写那个 Servlet生产的验证码对应的web.xml文件中
【33】 5.9 注册信息时,验证码不能正常出现,再点击“换一个”按钮, 注册信息时,验证码不能正常出现,再点击“换一个”按钮, 验证码也不能正常出现 验证码也不能正常出现 分析原因: 分析原因:出现此错误的原因有多种,分别是 a、写的 Servlet 不能 正常的生成验证码;b、img 中的 src 的值和生成验证码的 Servlet 在 web.xml 中配置的 url-pattern 中配置的值不一致。 Tarena 学员遇到的部分问题与解决办法 版本 V1.0 解决办法: 解决办法:直接访问生成验证码的 servlet,如果不能生成验证码, 需要调试 servlet;如果可以生产验证码,需要看 img 中的 src 的值 和生成验证码的 Servlet 在 web.xml 中配置的 url-pattern 值要一 致。 代码, 没有执行,
【34】 5.10 执行某个 js 代码, 没有执行, 查看 Firefox 的错误控制台里面 报错: 报错:$F is not defined 分析原因: 出现此错误的原因是没有导入 prototype1.6.js 文件或者 分析原因: 是导入 prototype1.6.js 文件的路径出错 解决办法: 查看是否导入 prototype1.6.js 文件和查看对应的路径是 解决办法: 否正确。 事件中, onblur
【35】 5.11 在 onblur 事件中,不执行 onblur 中的函数 分析原因: 出现此错误的原因是被调用的函数名或者函数名称书写错 分析原因: 误。 解决办法: 解决办法:检测被调用的函数名和函数名称是否书写正确,在不能确 认的情况下,用 Firefox 的错误控制台查看相关的错误,进行解决。
【36】 12、在 jsp 页面使用 el 表达式 方面:
【37】 六、Struts2 方面
【38】 6.1 启动 Tomcat 时, Console 里面报错 java.lang.ClassNotFound 里面报错: 在 Exception:org.apache.struts2.dispatcher.ng Exception:org.apache.struts2.dispatcher.ng.filter.StrutsPr epareAndExecuteFilter epareAndExecuteFilter Tarena 学员遇到的部分问题与解决办法 版本 V1.0 分析原因: 分析原因:出现此错误的原因是:struts.xml 文件中 filter-class> 中配置内容有错误, 或者没有导入 struts2 的相关包, 或者和 Tomcat 的版本不支持。 解决办法: 首先检查在 struts.xml 文件中导入的包名和类名是否正确, 解决办法: 再确认是否导入 struts2 的相关 jar 包。如果以上两种情况不能解决此 问题,请重新找个 Tomcat 试试,一般 Tomcat 6 可以正常使用。
【39】 6.2 在 struts.xml 文件中 文件中 报错, /struts报错,找不到相关的 http://struts.apache.org/dtds /struts-2 .1.7.dtd( .1.7.dtd(注:前天必须导入 ) "http://struts.apache.org/dtds/struts-2.1.7.dtd">) 分析原因: 分析原因:出现此错误的原因很明显,但是第一次处理起来挺费劲, 解决问题之后,感觉这个问题挺搞笑。 解决办法: 解决办法:说明URI地址http://struts.apache.org/dtds/struts http://struts.apache.org/dtds/struts -2.1.7.dtd在struts2-core-2.1.8.jar下面的struts-default.xml 文件中,问题处理步骤:Windows-- Preferences-- MyEclipse Enterprise Workbanch-- Files and Editors-- XML-- XML Cata log--- User Specified Entries--- 点击Add按钮,弹出对话框 选择Catalog Entry 再Location上面选择自己解压struts2-coreTarena 学员遇到的部分问题与解决办法 版本 V1.0 2.1.8.jar的路径(我的路径,供参考 D:\jars\struts2\struts2-core-2.1.8\struts-2.1.7.dtd) Key Type选择URI Key里面填写http://struts.apache.org/dtds/struts-2.1.7.dtd 配置好之后,同时可以决绝xml文件中的快捷键问题。 namespace
【40】 6.3 There is no Action mapped for namespace / and action name xxx. xxx. - [unknown location] 分析原因:出现此异常的原因是没有找到namespace 分析原因: 解决办法 解决办法:首先确认struts.xml文件的文件名是否书写正确和 struts.xml文件路径必须放到src目录下, 在检查namespace的路径。 namespace解释:namespace决定了action的访问路径, 默认为””.可以 接收所有路径的action,namespace也可以写为/,或者/xxx,或者 /xxx/yyy,对应的action访问路径为 /index.action,/xxx/index.action,/xxx/yyy/index.action。 namespace最好用模块来命名。 gnl.NoSuchPropertyException:com.tarena.action.Xxx Xxx.
【41】 6.4ognl.NoSuchPropertyException:com.tarena.action.Xxx. [java.lang.IllegalAccessException java.lang.IllegalAccessException: name [java.lang.IllegalAccessException: Class ognl.Ognl -Runtime can not access a member of class com.tarena. action.Xxx action.Xxx with modifiers "private"] Caused by: java.lang.IllegalAccessException: ognl.OgnlRuntime java.lang.IllegalAccessException: Class ognl.OgnlRuntime com.tarena.action.Xxx can not access a member of class com.tarena.action.Xxx with modifiers "private" Tarena 学员遇到的部分问题与解决办法 版本 V1.0 分析原因: 出现此异常的情况是ognl.OgnlRuntime这个类找自己定义 分析原因: 的类com.tarena.action.Xxx中的属性修饰符是private,即自己写 的类中私有属性没有生成标准的setXxx()和getXxx(),或setXxx() 和getXxx()是自己书写的,书写有错误。 解决办法: 解决办法:检查自己定义类中封装的属性,必需提供标准的setXxx() 和getXxx()方法。 方面: 七、Hibernate 方面 7.1 Exception in thread "main" org.hibernate.PropertyNotFoundExc -eption:Could not find a getter for passowrd in class db.domain.User 分析原因: 分析原因: 解决办法: 解决办法: 7.2 Exception in thread "main" org.hibernate.exception.JDBCCon nectionException: Cannot open connection Caused by: java.sql.SQLException: No suitable driver 分析原因: 出现此异常的原因不能打开 connection, 在查看 Caused byy 分析原因: 原因是没有合适的驱动 解决办法: 解决办法:首先查看有没有导入驱动包(Oracle 驱动包或 mysql 驱动 包),其次查看 hibernate.cfg.xml 配置,参考配置: