一、com.microsoft.sqlserver.jdbc.TDSChannel enableSSL
警告: TDSChannel ( ConnectionID:2 TransactionID:0x0000000000000000) SSL handshake failed: java.lang.RuntimeException: Could not generate DH keypair
解决方案:https://blog.csdn.net/bad00temper/article/details/72478302
自己解决方案:下载jdk1.7
---------------------------------------------------------------------------------------------------------------------------------------------------------------
二、JavaWeb应用出现HTTP 500-Unable to compile class for JSP 错误 的解决
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6383192.html
把本机的web项目部署到了云主机的tomcat上。之后通过浏览器访问时,如果出现 HTTP 500-Unable to compile class for JSP 的错误,应该怎么解决呢?

通常,造成这种错误的原因是你开发时所用的jdk版本以及本地测试时的tomcat版本比云主机上搭建的jdk版本以及tomcat版本低造成的。
解决方案:重新搭建云主机的jdk以及tomcat,版本选择开发时myeclipse所用jdk版本。
1:查看开发所用jdk版本。
在myeclipse中点击File,Properties,左侧栏选择BuildPath。

如上图,JRE System Library[Sun JDK 1.6.0_13]即为我的项目编译时所用的JDK版本。
2:根据上面得到的JDK版本,下载相应的tar.gz文件,参照博文 http://www.cnblogs.com/ygj0930/p/6377878.html 搭建JDK。
3:根据JDK版本选择tomcat:一般选择与JDK版本相应的tomcat。比如这里JDK6,所以我搭建了tomcat6。当然也可以选择tomcat7,8,9。记住,tomcat的版本必须大于等于JDK的版本。
4:重新部署web项目。
---------------------------------------------------------------------------------------------------------------------------------------------------------------
三、程序报错快速定位的心得
1.报错日志中找到最顶层错误信息,并定位到相应错误行,此处可以排除更深层的报错,因为当前行是报错位置,所以不是更深层的错误。更深层指自己写的其他调用方法
2.根据Exception的具体错误信息排查错误,如nullpointerexception一定是某个对象为null,所以null.func()就会报错
---------------------------------------------------------------------------------------------------------------------------------------------------------------
四、POI读取excel文件单元格内容时要根据单元格的格式调用不同方法读取
CellType cellType = cell.getCellTypeEnum();
switch (cellType) {
case STRING:
return cell.getStringCellValue();
case NUMERIC:
return String.valueOf(cell.getNumericCellValue());
case BOOLEAN:
return String.valueOf(cell.getBooleanCellValue());
default:
return "";
}
---------------------------------------------------------------------------------------------------------------------------------------------------------------
五、POI对cell判null条件,单元格没有做任何操作就是null,修改了单元格的文本类型也不为null
---------------------------------------------------------------------------------------------------------------------------------------------------------------
六、svn更新项目后,eclipse内一定要F5刷新下项目。
---------------------------------------------------------------------------------------------------------------------------------------------------------------
七、java.sql.BatchUpdateException: 将截断字符串或二进制数据。
字段长度大于数据库字段最大允许长度
1、直接取一条数据,insert,每次insert在values里加一个字段,判断是哪个字段出问题
2、再可用java代码解析数据判断是否是哪条数据超出了
3、char和varchar的区别:(1)、char存英文(ASCII)1个字节,中文2个字节;varchar存中英文都2个字节。
(2)、定义一个char[10]和varchar[10],如果存进去的是‘csdn’,那么char所占的长度依然为10,除了字符‘csdn’外,后面跟六个空格,而varchar就立马把长度变为4了
(3)、取数据的时候,char类型的要用trim()去掉多余的空格,而varchar是不需要的。
(4)、char的存取数度比varchar要快得多,因为其长度固定,方便程序的存储与查找;
(5)、char长度固定,会有多余的空格占位符占据空间,以空间换时间,varchar以空间效率为首位。
4、UTF-8 中文占3个字节,超大字符集中的更大多数汉字要占4个字节
GBK、GB2312、GB18030占2个字节
iso8859-1无法表示汉字,只能转为问号,拉丁字符(ASCII字符)占1个字节
sqlserver查看字符串编码:SELECT COLLATIONPROPERTY('Chinese_PRC_Stroke_CI_AI_KS_WS', 'CodePage')
下面是查询结果:
936 简体中文GBK
950 繁体中文BIG5
437 美国/加拿大英语
932 日文
949 韩文
866 俄文
65001 unicode UFT-8
八、java.lang.IllegalStateException: Cannot forward after response has been committed
多次重定向,
1、往输出流写入了东西,然后又跳转了页面。
RequestDispatcher disrequest.getRequestDispatcher("queryall.ftl");
dis.forward(request,response);
在此语句跳转之前,你使用了文件操作流;可以先注释掉再尝试。
2、用out对象,向JSP页面print了数据,然后又跳转。
获得了PrintWriter对象,往JSP页面打印输出,如果有这样的语句会报错,因为我们写的servlet类,就是用来响应用户的访问请求的,而out.print()是要把内容输出到(响应)页面,也是对用户访问的响应,所以如果在跳转之前有out.println(“<html>”)相当于已经response响应了用户请求,所以再dis.forward(request,response就会)提示已经重复提交。
3、可能由于调用了父类的super.doPost(request,response);
这是因为,doPost()[doXXX()]方法就是service()执行过程中判断用户访问方式(post、get等)后,调用的响应响应方法,即执行相应的doXXX()方法去响应用户,而显示调用父类的doPost()方法,且先执行完,就等于已经响应了一次,然后又去跳转又去响应,就会报错重复提交。所以去掉super.doPost(request,response)。
4、return string也是响应,return;和return null不是; 程序在return之前就已经执行了跳转或者执行过response,再执行return就会报错。解决方法是改成return;或者return null;
struct2会根据返回值去查result标签,
---------------------------------------------------------------------------------------------------------------------------------------------------------------
本文汇总了Java编程中常见的异常及解决方法,包括SQL连接SSL错误、JSP编译错误、程序报错定位、POI读取Excel、单元格判null、SVN更新后刷新项目、数据库字段长度限制问题以及HTTP响应已提交的错误。提供了详细的解决方案和参考资料。
1万+

被折叠的 条评论
为什么被折叠?



