zoukankan      html  css  js  c++  java
  • Java异常归纳

     

    1、使用Tomcat运行“播报哥架构”出现的两大异常

    1.1 监听器异常

    详细情况:部署好Maven项目,启动TOMCAT提示如下错误

    java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener

    错误原因及解决办法:

    网上资料基本上都是说没有导入spring-web.jar,但是我的项目中是添加了spring-web.jar的。一直想不到办法,后面改了些地方,该异常消失了,但又出现了下面说的Zip异常,搞了大概有3天,后面有人解决了,问下别人才发现原来是工程部署错误。现在想想其实当时是太焦急了,处理这个异常的思路应该是:“先找Tomcat下部署的该项目的lib文件夹,检查其中是否有spring-web.jar,结果是没有的,那里连lib文件夹都没有,然后再去百度,你会发现原来是工程部署配置问题,接着答案就出来了”。

    1.1.1  maven项目部署后没有依赖的jar

    1、部署后,WEB-INF/lib 里如果没有maven依赖的 jar 包,请检查工程部署配置:

     

    2如果没有看到 maven 依赖配置,打开 pom.xml 检查打包类型是否是war:

     

     

    1.2  Zip异常

    详细情况:部署好Maven项目,启动TOMCAT提示如下错误

     java.util.zip.ZipException: invalid LOC header (bad signature)

    错误原因及解决办法:到网上搜索资料,发现该错误的原因是jar包由于位置原因被破坏了,然后我就将Maven仓库中的jar包全部删除,接着打开项目,进行“update project”操作,使得jar包重新下载到Maven仓库中,最后发现错误解决了。(如若有问题,就复制一个能正常运行Maven项目的电脑中的仓库,将该仓库的jar全部复制到自己的仓库中,然后再重复上述步骤)

     

    2、服务器内存异常

    详细情况:启动TOMCAT提示如下错误

    Exception in thread "http-apr-8080-exec-3"  java.lang.OutOfMemoryError: PermGen space

    错误原因及解决办法:原因就是服务器内存过小,将以下信息配置好即可。

    配置信息:-Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=128m

     

     

    3、JDK版本异常

    详细情况:

    java.lang.UnsupportedClassVersionError: com/hyq/sm/TestSM : Unsupported major.minor version 51.0

    错误原因及解决办法:这个问题是由较高版本的JDK编译的java class文件试图在较低版本的JVM上运行产生的错误。第一个办法是在自己电脑上新建一个项目,然后将数据全部复制过来即可;第二个办法是改变JDK的版本为1.7或更高。

    4、Mybatis的mapper配置文件命名空间异常

    详细情况:

    Attribute "namespace" must be declared for element type "mapper".

    错误原因及解决办法:mybatis的jar包版本在3.2或更低时,就会报此错误。将mybatis的jar包换成3.4.4版本即可;

     

    5、hibernate相关类找不到异常

    详细情况:

    Property 'validationMessageSource' threw exception; nested exception is java.lang.NoClassDefFoundError: org/hibernate/validator/spi/resourceloading/ResourceBundleLocator

    错误原因及解决办法:hibernate-validator的jar包版本过低(版本小于等于4.1.0),没有ResourceBundleLocator类。更换成hibernate-validator-4.3.0.Final.jar即可;

     

    6、mybatis运行时异常

    详细情况:

    org.apache.ibatis.reflection.ReflectionException: Error instantiating null with invalid types () or values (). Cause: java.lang.NullPointerException

    错误原因及解决办法:写一对一查询时,association的javaType属性没有写;或写一对多查询时,collection的ofType属性没有写;

     

    7、xml语法分析异常

    详细情况:

    org.xml.sax.SAXParseException: The string "--" is not permitted within comments

    错误原因及解决办法:是因为多行注释中写了”--”字符串;只要连在一起的横杠个数大于等于2,就会出错。

     

     

     

    8、mybatis和spring整合异常

    详细情况:

    java.lang.AbstractMethodError: org.mybatis.spring.transaction.SpringManagedTransaction.getTimeout()Ljava/lang/Integer;

    错误原因及解决办法:jar包兼容性问题,把mybatis和spring的整合jar包改为高版本1.3.0就可以了。

     

    9、复制属性异常

    详细情况:

    org.apache.commons.beanutils.ConversionException: No value specified for 'Date'

    错误原因及解决办法:使用“BeanUtils.copyProperties(u1, u2);”的时候,由于u2有一个属性是Date类型,并且为空,所以引发此异常。跟u1无关;

    注意:u1是目标对象,u2才是源对象。

     

    10、SQL语句乱码

    详细情况:使用Mybatis框架操作MySql数据库时,项目编码和数据库编码都是utf-8,连接的URL也设置了编码类型,但SQL语句就是乱码。

    错误原因及解决办法:排查许久,才发现原来数据库表中的字段名是数据库的关键字,将其改正,SQL语句就正常了。

     

    11、String转化为Date出错(*

    详细情况:使用SimpleDateFormat类,将其格式设为"YYYY-MM-dd",将指定日期字符串转化为Date的时候,得到的Date日期却与实际日期不符。

    错误原因及解决办法:要将格式YYYY设为yyyy,目前也不知原因为何。

     

    12、文件下载中文文件名不显示

    详细情况:无

    错误原因及解决办法:大体的原因就是header中只支持ASCII,所以我们传输的文件名必须是ASCII,当文件名为中文时,必须要将该中文转换成ASCII。按照以下做法即可解决该问题,

     

     

    13、运行mybatis时不能显示log4j日志

    详细情况:无

    错误原因及解决办法:因为我的项目是web项目,所以要在网页上运行才会显示日志;而普通的Java项目直接运行就会显示日志;其次,注意要把log4j的级别配成debug,jar包只需要导入log4j.jar即可,其余的log4j-api、log4j-core、slf4j的jar包都不需要;

     

     

     

     

    备注:该文档一级标题为黑体三号加粗,二级标题和三级标题为宋体正文三号加粗,概括字体为楷体三号加粗,内容为楷体三号,关键语句为楷体三号红色字体,异常为Consolas三号红色字体,小型描述性文字为PingFang SC 小四字体,大标题为宋体标题20号。

  • 相关阅读:
    pandas:由列层次化索引延伸的一些思考
    机器学习中的异常检测手段
    GBDT+LR算法解析及Python实现
    模型性能提升操作
    /usr/bin/python: can't decompress data; zlib not available 的异常处理
    FM算法解析及Python实现
    vue项目中的iview如何验证for循环的输入框、日期选择框,及表单回填验证不通过问题
    JavaScript的数组方法(array)
    Js中toFixed()方法保留小数不精准的问题
    vscode中iview的</Col>标签报错问题
  • 原文地址:https://www.cnblogs.com/syjp/p/11082117.html
Copyright © 2011-2022 走看看