一、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包.

九:

遇到的Exception/error及解决办法记录汇总的更多相关文章

  1. jenkins编辑报错Exception when publishing, exception message的解决办法

    jenkins编辑报错Exception when publishing, exception message的解决办法 查看目标主机的磁盘空间是否占满,清理磁盘空间即可

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

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

  3. 记录一次MyEclipse打开jsp文件出现Error的解决办法

    今天正在忙着写项目,在打开一个项目内的jsp文件时发现我亲爱的代码消失了. 最后从网上找到了解决办法,希望可以帮到有需要的人,也作为个人记录 第一步:找到安装路径MyEclipse\configura ...

  4. Spring Boot连接MySQL报错“Internal Server Error”的解决办法

    报错信息如下: {timestamp: "2018-06-14T03:48:23.436+0000", status: 500, error: "Internal Ser ...

  5. xp操作系统下配置iis,出现了server application error的解决办法

    在网上搜索了很多解决办法,最后发现一个差不多的: Server Application Error The server has encountered an error while loading ...

  6. There was an internal API error.的解决办法

    1.当安装应用到4s时,偶尔有些程序会报这个错误,There was an internal API error 解决办法如下: 真机运行下,项目在iOS8.0下运行正常,但是一旦换到iOS7.0和7 ...

  7. VC error LNK2005 解决办法

    error LNK2005: "int __cdecl VerifyVMR9(void)" (?VerifyVMR9@@YAHXZ) 解决办法 在 属性->配置属性-> ...

  8. iOS 提交审核报错 ERROR ITMS-90087解决办法

    ERROR ITMS-: "Unsupported Architectures. The executable for yht.temp_caseinsensitive_rename.app ...

  9. Odoo8出现Internal Server Error的解决办法之一

    转载地址:http://blog.sina.com.cn/s/blog_7cb52fa80102vaf3.html     问题: 不知怎么回事,我的Odoo8出错了,重装也一样出错信息如下 Inte ...

随机推荐

  1. Vuex2.0+Vue2.0构建备忘录应用实践

    一.介绍Vuex Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化,适合于构建中大型单页应用. ...

  2. 堆排序与优先队列——算法导论(7)

    1. 预备知识 (1) 基本概念     如图,(二叉)堆是一个数组,它可以被看成一个近似的完全二叉树.树中的每一个结点对应数组中的一个元素.除了最底层外,该树是完全充满的,而且从左向右填充.堆的数组 ...

  3. 前端学HTTP之客户端识别和cookie

    前面的话 Web服务器可能会同时与数千个不同的客户端进行对话.这些服务器通常要记录下它们在与谁交谈,而不会认为所有的请求都来自匿名的客户端.本文主要介绍客户端识别及cookie机制 HTTP首部 HT ...

  4. Elinq+Oracle

    这份工作一直以来都用Oracle数据库,先前都是直接用的ADO.NET但是写包跟存储过程是一个很头疼的事情,满足不了快速开发的需求. 一直常识找比较好用的ORM,先前用的Entity Framewor ...

  5. 【NLP】Python NLTK 走进大秦帝国

    Python NLTK 走进大秦帝国 作者:白宁超 2016年10月17日18:54:10 摘要:NLTK是由宾夕法尼亚大学计算机和信息科学使用python语言实现的一种自然语言工具包,其收集的大量公 ...

  6. 设置eclipse中自动添加get,set的注释为字段属性的注释

    一:说明 首先具体来看一下是什么效果,上图可能会更清楚一点 就是在get/set中自动加上属性的注释,那我们要怎么配置呢? 二:配置 2.1:下载附件 下载附件 2.2:替换class 原生的ecli ...

  7. Moon.Orm 入门总指南

    注意:下面的pdf文件强烈建议下载或在线查看 1)旗舰版帮助文档点击查看或下载 2)http://pan.baidu.com/s/1hq7krFu(新手手册下载)(强烈推荐) 3)性能及规范下载,网友 ...

  8. C#开发微信门户及应用(30)--消息的群发处理和预览功能

    在很多场合下,我们可能需要利用微信公众号的优势,定期给指定用户群发送一些推广消息或者新闻内容,以便给关注客户一种经常更新公众号内容的感觉,同时也方便我们经常和用户进行互动.微信公众号的高级群发接口就是 ...

  9. 在WPF按钮删除默认的鼠标悬停效果

    如果你想在应用程序的所有按钮将此风格,那么这种风格可以插入Application.Resources部分的App.xaml页面. <Window.Resources> <Style ...

  10. PHP中模拟JSONArray

    前面整理过一篇文章,描述php中的array与json的array和object的转换关系.http://www.cnblogs.com/x3d/p/php-json-array-object-typ ...