错误手册
个人主页:http://www.itit123.cn/ 更多干货等你来拿
在开发中难免会遇到形形色色的错误,犯错并不可怕,可怕的是一错再错。习惯把自己的错误记录下来,时刻提醒告诫自己。即使是再小的错误也不能改变你错过的事实。
1.
java.sql.SQLException: Unknown system variable 'tx_read_only'
mysql版本和驱动版本不匹配,更换一个就ok了
2.
java.lang.Exception: Socket bind failed: [730048] ?????????×???(Э?é/???????/???)????í??
端口占用问题
Step 1:运行 -> CMD -> netstat -ano -> 找到tomcat端口号对应的PID。
Step 2:打开任务管理器 -> 查看 -> 选择列 -> 勾选PID -> 将对应的PID的进程KILL掉。
Step 3:删除TOMCAT_HOME/work/目录文件。
Step 4:重启eclipse & tomcat。
3.
java.lang.ClassNotFoundException: javax.servlet.jsp.jstl.core.Config
如果用的是myeclipse,可以在tomcat先remove项目,然后再add,最后启动service,或者是在Build path -- java build path -- add library -- server runtime-- 添加tomcat
4.
maven项目导入jar,在项目启动还出现
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
解决方法:
需要设置eclipse,项目 -- 属性 -- Deployment Assembly -- Add -- Java Build Path Entries -- 选择 Maven Dependencies -- Finish -- OK
如果你发现没有 Maven Dependencies 可以按照下面的方法添加
解决方法:
项目 -- Build Path -- Java Build Path -- Libearies -- Add Library -- Maven Managed Dependencies -- Next -- Maven Project settings 在Active Maven Profiles (comma separated) 中添加 Maven Dependencies 确定即可
5.
tomcat显示端口被占用,如果刚开始能用,突然就不能用的情况下,可以考虑打开任务管理器 -- 进程 -- 关闭 javawx(好像是这个名字,当时忘记做笔记了,后续补上)
6.
80端口被占用:
情况一:如果开了迅雷之类的软件,可以选择关闭他们
情况二:在dom下输入netstat -ano找到占用80端口的进程,然后杀死该进程
如果pid = 4
情况三
:
打开RegEdit:
找到HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/
HTTP
找到一个
DWORD
值Start,将其改为0,重启电脑,System进程将不会占用
80端口
情况四:关闭
SQL Server ReportingServices
服务
7.
解决 js文件不能用el表达式:
jsp是由服务端执行,el表达式自然由服务端解析,如果el所在的js脚本在jsp文件中是可以获取到值的,如果js脚本在单独的文件中的话,是无法获取的,因为js是客户端执行,不在同一频道上,解决方法如下:
一:添加一个隐藏域
jsp文件:
<input id="ctx" type="hidden" value="${pageContext.request.contextPath}"/>
单独js文件:
var ctx = "";
$(function(){
ctx = $("#ctx").val();
});
二:简单粗暴,将js文件改名为jsp文件
当然要在js文件中添加需要的jsp头内容,实验证明可以
<script type="text/javascript" src="${pageContext.request.contextPath}/js/register.jsp">
8.
eclipse git冲突解决:
查考网站:http://blog.csdn.net/rosten/article/details/17068285
9.
页面上出现:[object HTMLInputElement]:
一般是js中出现了未定义的变量导致的
10.
出现Null value was assigned to a property of primitive type setter of
报错的原因可能是对应字段为null;比如某字段类型为float 建议默认值设置为0,不然会报此错误
11.
更换maven版本控制台打印 :-Dmaven.multiModuleProjectDirectory system propery is not set.
解决方法:
第一步:设置环境变量M2_HOME指向你的maven安装目录
M2_HOME=D:\Apps\apache-maven-3.3.1(maven安装路径)
第二步:在Window->Preference->Java->Installed JREs->Edit
在Default VM arguments中设置
-Dmaven.multiModuleProjectDirectory=$M2_HOME
12.
maven项目不能下载jar包
原因一:
新建的maven项目不能直接开始maven test,这样是不能从maven中央仓库中下载jar包的,先要:右击项目=== properties === maven === project facets === java 选好后apply
=== dynamic web module 选好后 apply
13.
项目使用了fis后问题
安装fis:
下载node.js
在dom窗口下输入node -v 和 npm -v;查看版本,
若有版本就输入npm install fis -g开始全局安装fis;若被墙,可以考虑翻墙或者找到国内镜像下载,下载完成输入fis -v查看
![]()
则说明安装成功
![](https://img-blog.csdn.net/20160315111640770)
14.
el表达式在js中问题:
一般通过
<c:set var="ctx" value="${pageContext.request.contextPath}"/>
获取项目路径,而js中却不能读取${ctx},所以可以通过传值或者是把js文件命名为jsp文件都可以解决,或者认为的添加项目名,但需要注意的是项目名前面要加斜杠(因为没加斜杠,我纠结了一下午)
15.
发送邮件换行:
![](https://img-blog.csdn.net/20160315111649364)
![email换行.png]()
后续继续更新,有什么问题或者更好的解决方法欢迎指出