一、java.net.SocketException

  1、java.net.SocketException:Connection reset

    首先,如果一端的Socket被关闭(或主动关闭,或因为异常退出而 引起的关闭),另一端仍发送数据,发送的第一个数据包引发该异常(Connect reset by peer)。
    然后,一端退出,但退出时并未关闭该连接,另一端如果在从连接中读数据则抛出该异常(Connection reset)。
    简单的说就是在连接断开后的读和写操作引起的。

  2、如果在报错中有java.net.SocketInputStream.read():考虑要读取的输入流的资源不存在或者格式错误,也可能是路径地址出错

  3、socket-详细分析No buffer space available:参见 http://www.cnblogs.com/hjwublog/p/5114380.html

二、org.hibernate.Exception

  1、org.hibernate.ObjectNotFoundException: No row with the given identifier exists:

    原因可能是POJO映射文件中的字段和数据库里表的字段不匹配(不一致)。另外还有一种可能就是表A与表B之间存在关联关系,并且从表A中通过外键查询表B当中的符合条件的记录时,在表B找不到相应的记录,但这种关联关系还继续维持着!

    很可能是因为设置级联操作。 又或者是在删除表A的记录时,你并没有同时删除与之关联表B中的记录!!!

  2、org.hibernate.PropertyAccessException: exception setting property value:

    主要是数据库中number类型的字段为空导致的错误。其实挺好理解的当HIBERNATE获取到空时返回NULL,但是如果 你配置的映射文件中type 是long或者其他基本数据类型时,就会出现错误。解决的方法有2种

    第一:设定数据库,如果是number类型或者其他映射后是基本数据的类型时,为其设定默认值。

    第二:在POJO类中的set器 传入基本数据类型的封装类,然后进行判断,如果是NULL就赋给默认值。

  3、org.hibernate.LazyInitializationException: could not initialize proxy - no Session:

    这是一个lazy使用后的Exception,使用迟时加载,在session(hibernate里的session),关闭后使用该对象的未加载变量,也就是说session已经关闭,没有保存到内存中,然后你使用了,导致该异常。

      原因:<may-to-one>or<one-to-may>的lazy属性默认为:lazy = "proxy"
      解决:<many-to-one> & <set> 中设置 lazy="false"

三、org.apache.jasper.jasperException

  访问JSP时,报错:Attribute value is quoted with " which must be escaped when used within the value 。相信很多人都遇到过,以下结合本人查资料与亲自实践得到的结论。(有不对的地方还请指教)
    错误常发生的位置 value="<%=""+request.getAttribute("name")%>"
    错误产生的原因,是因为tomcat版本升级后(6.0以后),对双引号的处理机制引起的,如果出现双引号包含双引号的情况,就可能会出现这个错误。
    解决办法有好多种,大多数网上的意见是改为value=‘<%=""+request.getAttribute("name")%>’ 这样确实可以解决这个报错,可能无法完全解决问题,比如项目中有很多地方以前都用的是双引号,修改起来会非常麻烦,还容易出错。
      查看tomact文档有一段话这样描述的“If false the requirements for escaping quotes in JSP attributes will be relaxed so that an unescaped quote will not cause an error.
      If not specified, the specification compliant default of true will be used.” 这个描述针对的是tomact的org.apache.jasper.compiler. Parser.STRICT_QUOTE_ESCAPING属性。
      如此一来,我们知道只要在tomcat启动时将这个属性设为false就可以解决这个问题。
      那么怎么将这个属性设置到tomcat的system属性中呢,有至少两个办法:
        一种是利用tomcat启动的执行脚本,在执行过程中调用setenv.sh,在其中设置环境变量,如:JAVA_OPTS=%JAVA_OPTS%: -Dorg.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false
        另一种是找到conf/catalina.properties文件,在最后添加org.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false 即可。

四、java.lang.NoClassDefFoundError:TagSupport

  这个错误应该就是没有成功加载tomcat自带的jar包jsp-api.jar。

  在网上看到很多网友说要把tomcat/lib下的jsp-api.jar拷贝到项目/WEB_INF/lib下并导入,本人试了一下这是有问题的,这样虽然在启动tomcat的时候不会报错了但是在运行程序(比如打开网页)的时候就会报错,因为jar包冲突了。

  解决办法:

    1.引用jsp-api.jar

      项目右键-->properties-->java Build Path-->Libraries-->add External JREs-->tomcat下的jsp-api.jar

    2.直接整体加入tomcat的jar包

      项目右键-->properties-->java Build Path-->Libraries-->Add library-->Server Runtime-->Apache Tomcat xx

    注意:当你已经引用了tomcat/lib下的jsp-api.jar,在运行程序的时候如果报以下错误:

     java.lang.ClassCastException: org.apache.struts.taglib.bean.CookieTei cannot be cast to javax.servlet.jsp.tagext.TagExtraInfo

     需要去你发布的项目下:也就是/tomcat xxx/webapps/项目名/WEB-INF/lib下去删除jsp-api.jar,然后重启tomcat。

五、javax.net.ssl.SSLHandshakeException

  I.报错: javax.net.ssl.SSLHandshakeException

  II.原因分析:
    CAS部署时,常常要涉及到HTTPS的证书发布问题。由于在实验环境中,CAS和应用服务常常是共用一台PC机,它们跑在相同的JRE环境和Tomcat服务器上,因此忽略了证书的实际用途,一旦将CAS和应用分别部署在不同的机器上时,就晕了!

    这里假设如下实验环境来说明相应的部署
      机器A: 部署CAS服务
      机器B: 部署OA应用
      机器C: 用户浏览器端

    1.由机器A上生成.keystore的证书文件,证书颁发者是机器A的完全域名
    2.机器A上用于部署CAS的Tomcat的server.xml文件中定义HTTPS的配置,指向.keystore文件证书
    3.从.keystore中导出的凭证文件要copy到机器B上,并导入机器B的JRE环境的证书库中
    4.机器B上部署OA的Tomcat必须指定运行在导入凭证JRE环境上,而不是JDK,这点常有人搞错。

  III.导入证书步骤:
    1.找到JRE
      1)机器B的OA应用直接部署在Tomcat
      >>>独立的JRE
        如果你在安装JDK时,选择了同时安装JRE,那么系统是跑在独立的JRE上。
        为什么?因为在安装独立JRE的时候程序自动帮你把jre的java.exe添加到了系统变量中,验证的方法很简单,大家看到了系统环境变量的 path最前面有“%SystemRoot%system32;%SystemRoot%;”这样的配置,

        那么再去Windows/system32下面去看看吧,发现了什么?有一个java.exe。
      >>>JDK里的JRE
        如果没有同时安装独立JRE,那么系统跑在JDK自带的JRE上。
      2)机器B的OA应用在MyEclipse中开发测试中
        MyEclipse-右键project-Java Build Path-Libraries-双击JRE-一般是Workspace default JRE;
        MyEclipse-windows-Preferences-Java-Installed JREs-右边有Myeclipse默认自带的JDK,双击即可查到JRE home;
    2.到机器A拷贝证书xxx.cer文件到机器B
    3.导入命令
      cmd进入命令行窗口;cd进入JRE目录\lib\security;
      keytool -import -alias cacerts -keystore JRE目录\lib\security\cacerts -file 证书目录\xxx.cer -trustcacerts;
      提示输入密码:changeit;
      确定:y
    4.如果keytool用不了,查看下path,classpath是否配置正确。

  IV.自己总结的证书导入步骤(cmd进入命令行窗口,cd进入JRE目录\lib\security):

    1.查看证书:keytool -list -keystore /xxx/cacerts -storepass changeit

    2.删除同名证书:keytool -delete -alias 证书名称 -keystore /xxx/cacerts -keypass changeit

    3.导入证书:keytool -import -alias 证书名称 -file /xxx/server.cer -keystore /xxx/cacerts -storepass changeit 或者

      keytool -import -v -rfc -trustcacerts -alias 证书名称 -file /xxx/server.cer -keystore /xxx/cacerts -storepass changeit -keystore cacerts所在完整路径 -storetype JKS;

    4.如果keytool不可用(提示不是内部命令);cd /xxx/jdk1.xxx/bin

      或者直接在classpath里面配置%JAVA_HOME%\lib\tools.jar;

六、CASAuthenticationException: Unable to validate ProxyTicketValidator

  单点登录报错:Unable to validate ProxyTicketValidator
    edu.yale.its.tp.cas.client.CASAuthenticationException: Unable to validate ProxyTicketValidator
    [[edu.yale.its.tp.cas.client.ProxyTicketValidator proxyList = [ null ]
    [edu.yale.its.tp.cas.client.ServiceTicketValidator casValidateUrl =
    [https: // sourcesite:8443/cas/proxyValidate] ticket=[ST-0-UMjsI0YOhF15RhutnkHW]
    service=[http%3A%2F%2Fdestsite%3A8080%2Fservlets-examples%2Fservlet%2FHelloWorldExample]
    renew=false]]]
     ...

  可能的原因:
    1.证书未正确产生和导入。在SSL握手中,CAS Client无法识别CAS Server的证书(X),即无法建立一条从cacerts信任证书到X的信任路径,读者可以看一个叫做PKIX规范。
      解决办法是检查tomcat使用的信任证书路径,通常是jre/lib/security/cacerts文件,看是否已经导入了所需信任证书。
    2. 未使用域名作为访问服务器。
    3. tomcat使用的jvm不是系统默认的jdk所带的JVM,这个经常发生。

七、java.lang.OutOfMemoryError: Java heap space

  1、首先得确定有没有跑多个java进程,
  2、然后看一下tomcat/wapps下面是不是有忘了remove的项目(本人就是关闭了一个之前的项目,但是还在wapps里面没有移除)

  3、引起java.lang.OutOfMemoryError: Java heap space异常,可能是由JAVA的堆栈设置太小的原因

    根据网上的答案大致有以下两种解决方法:

      1)、在D:/apache-tomcat-6.0.18/bin/catalina.bat最前面加入:set JAVA_OPTS=-Xms384m -Xmx384m

        注意:只有startup.bat启动tomcat,设置才能生效,如果利用windows的系统服务启动tomcat服务,上面的设置就不生效了,
        就是说set JAVA_OPTS=-Xms384m -Xmx384m没起作用

      2)、在Eclilpse中修改启动参数,在VM arguments 加入了-Xms384m -Xmx384m,设置如下图所示

        

八、java.lang.RuntimeException: Unable to create XMLReader

  XmlReader 读取文件异常:

    java.lang.RuntimeException: Unable to create XMLReader
    org.jasig.cas.client.util.XmlUtils.getXmlReader(XmlUtils.java:44)
    org.jasig.cas.client.util.XmlUtils.getTextForElement(XmlUtils.java:116)
     root cause

      java.lang.ClassNotFoundException: org.apache.xerces.parsers.SAXParser

      ...

  解决办法:(jar包下载)

    导入dom4j.jar和xerces.jar;尤其是需要后面一个jar包.

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

  异常明显是xml文件中注释的问题。

  首先:添加注释一定要在<!-- -->之间添加要注释的内容,千万不能让<!-- -->是空的

  其次:<!-- 【注释】--> 注释与-->之间要有空格 否则也可能造成xml解析错误

  最后:在注释中不能再有--之类的东西。。。如:<!-- 某某--注释 -->这种情况。sqlmap加载配置时,会报错

转载于:https://www.cnblogs.com/zhaoyhBlog/p/6237808.html

遇到的Exception/error及解决办法记录汇总相关推荐

  1. 使用echart的雷达图的时候,如果文字越界的解决办法记录,标签文字自动换行

    使用echart的雷达图的时候,如果文字越界的解决办法记录,标签文字自动换行 前几天项目中有一个图表的是用echart生成的,遇到一个问题,就是在手机端显示的售时候,如果文字太长就会超出div,之前的 ...

  2. Matlab7.0安装之后Runtime Error警告解决办法

    Matlab7.0安装之后Runtime Error警告解决办法 | 浏览:35 | 更新:2014-04-11 23:58 1 2 3 4 5 分步阅读 matlab是一款大型矩阵实验室,对于工科学 ...

  3. Microsoft Edge 和 Google Chrome更新后,出现错误代码:STATUS_STACK_BUFFER_OVERRUN,有效解决办法记录【已解决】

    Microsoft Edge 和 Google Chrome更新后,出现错误代码:STATUS_STACK_BUFFER_OVERRUN,有效解决办法记录[已解决] Google Chrome网页错误 ...

  4. 误删除Linux下/etc/shadow文件,linux修改密码出现Authentication token manipulation error的解决办法

    linux卸载ss的时候误把/etc/shadow删除掉了,导致ssh root登录不了.修改密码出现Authentication token manipulation error的解决办法. 解决办 ...

  5. 编译mysql提示make[2] [mysql] erro1_APACHE 编译错误:make[2]: *** [htpasswd] Error 1 解决办法...

    今天编译安装apache 2.2 时,到了make后出现如下错误, make[2]: *** [htpasswd] Error 1 make[2]: Leaving directory `/usr/l ...

  6. mysql grant reload,MySQL执行GRANT命令时报错ERROR 1045解决办法

    摘要 腾兴网为您分享:MySQL执行GRANT命令时报错ERROR 1045解决办法,杂志迷,云闪付,一直播,小象优品等软件知识,以及592美剧,乐天网络电视,吃鸡无后座,易语言宝盒,语音转文字软件, ...

  7. 进程未知端口占用通用解决方法,Socket Error 10013解决办法,实测有效

    进程未知端口占用通用解决方法,Socket Error 10013解决办法,实测有效 先看是你要使用的软件是什么,把它丢到虚拟机里面,并启动该进程 在虚拟机内,按下Win+R 输入CMD,启动命令行 ...

  8. ubuntu20.04耳机和外放同时有声音,解决办法记录。

    ubuntu20.04耳机和外放同时有声音,解决办法记录!!! 对耳机和外放同时有声音的解决办法,网上说了很多,但不是很具体,这里简单描述一下 1.首先在终端中输入: alsamixer 2.在进入后 ...

  9. ubuntu文件管理器打不开,出现假死现象的解决办法记录

    ubuntu文件管理器打不开,出现假死现象的解决办法记录 无论新建多少窗口,多少次双击一直出现这种文件管理器界面,一直进不去. 经了解, 一般是nautilus出错了,才出现假死现象,可以卸载之后重新 ...

最新文章

  1. 【CV】吴恩达机器学习课程笔记 | 第1-15章
  2. 国际顶级学术会议CIKM2019北京开幕在即,重量级嘉宾带你窥探人工智能前沿
  3. MPLS多协议标签交换原理—Vecloud微云
  4. 语音写出(wavwrite)
  5. 二分法(三种基本模版)
  6. 对象作为参数示例java_功能Java示例 第6部分–用作参数
  7. IIS之错误解决之道
  8. linuxpython源文件_如何在Linux中运行Python源文件
  9. 调用$.ajax不成功,jquery中ajax请求后台数据成功后既不执行success也不执行error的完美解决方法...
  10. spring冲刺第九天
  11. JetBrains系列WebStorm等中文输入法无法跟随光标的问题的解决办法
  12. 计算机算法设计与分析 找零钱问题
  13. Windows7 x64在Wampserver上安装memcache
  14. python判断图片类型_python模块之imghdr检测图片类型
  15. Julia : |>的用法及多参数下的使用
  16. 获取桌面DC: GetDC(GetDesktopWindow())与GetDC(NULL)
  17. 统计计量丨统计学公开课大盘点(附下载)
  18. surfacepro3运行C语言,【微软 Surface PRO3使用总结】C面|D面|噪音|材质_摘要频道_什么值得买...
  19. Android大话设计模式 第二章----单一职责原则 乔峰VS慕容复
  20. SAP系统Sizing的原理

热门文章

  1. i2c协议解读(附读写过程c代码)
  2. 智慧新零售时代 让数字化赋能会员营销
  3. 每日一结(10.25)
  4. 【读书笔记->统计学】11-02 总体和样本的估计-总体比例、样本比例、根据总体预测样本比例概念简介
  5. firefox附加组件开发者指南(三)——XUL简介(下)
  6. 从放大器开始谈模拟电子
  7. 使用Tensorflow构建属于自己的图片分类器
  8. RS232-CAN 对接测试 - 基于乐电新南 RS232-CAN 转换器
  9. Gerber 各层的含义
  10. 推荐几款免费web应用防火墙(云waf)