发表于: 2017-11-28 21:24:06
1 716
今天完成的事
【出去逛了逛】
作为低端人口躲了一下首都的追杀。
【解决了一下困扰两天的bug】
在北京的马路上顶着寒风行走的时候,想起了一个解决最近bug的新思路。
我的项目出现的问题,我每一次都学着打断电去排查,知道查到源码,追着源码不放,有点狭隘了。
仔细回头看一下tomcat的报错日志入手试试。
我们重新看一哈这个错误,
挨个百度关键词。
http://tinypig.iteye.com/blog/214442
这个文档说明了。
针对“java.lang.VerifyError”的错误原因,主要是因为jar包的版本问题导致,可能是因为部署环境存在2套以上版本冲突的驱动程序部署在应用服务器不同的lib目录下,或者是jar包被替换了。
我就换了个jar包。
这是我娶maven远地仓库找到的。
我对比了一下两个有什么区别。
右面是远程仓库的。
结构是差不多的。
我只能理解为我用的是JDK1.8不能匹配2.2.6版本。
不准备深究了,这个事情耗费了两天时间了。
这个时候我的程序就没问题了
注意看日志。
都可以从缓存里取。
我插入一个职业试试。
每次插入都会存到数据库并替换缓存。
【压测比较数据】
先用没有缓存的测一下TPS。90%线
100个同时并发。
200个同时并发。
真的辣鸡。再来看一下我用了缓存的。
100个同时并发。
200个同时并发。
可以说缓存的效果非常明显了。
【学习阿贾克斯】
在主页写一个小一点的阿贾克斯
<%--
Created by IntelliJ IDEA.
User: 张志明先生
Date: 2017/11/29
Time: 1:15
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
<script type="text/javascript">
var xmlhttp;
function btnClick()
{
xmlhttp=null;
if (window.XMLHttpRequest)
{// code for Firefox, Opera, IE7, etc.
xmlhttp=new XMLHttpRequest();
}
else if (window.ActiveXObject)
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
if (xmlhttp!=null)
{
xmlhttp.onreadystatechange=function () {
};
xmlhttp.open("GET","${pageContext.request.contextPath}/ajax1",true);
xmlhttp.send(null);
}
else
{
alert("Your browser does not support XMLHTTP.");
}
}
function state_Change()
{
if (xmlhttp.readyState==4)
{// 4 = "loaded"
if (xmlhttp.status==200)
{// 200 = "OK"
document.getElementById('T1').innerHTML=xmlhttp.responseText;
}
else
{
alert("Problem retrieving data:" + xmlhttp.statusText);
}
}
}
</script>
</head>
<body>
<input type="button" value="点我控制台会打印" onclick="btnClick()">
</body>
</html>
这个阿贾克斯的作用主要是
一个点击按钮,没点一次,控制台都会打印一行语句。
controen层是这样的一个输出语句
点一次我的控制台就会
明天小课堂再延伸一下,差不多就可以开讲了。
收获
学着看了一下怎么分析jar包冲突。
以前只是知道,部署到tomca里时,要把servlet-api和jsp-api两个包删除,那是我接触到的唯一的包冲突的实例。经过这次教训,总算彻底的认识到jar包冲突的问题了:很隐蔽!没有经验根本无法发现,这也是使用maven带来的弊端吧,间接引进的包太多。
但是我今天没用到,先记录一下。
遇到的问题
本地和远程的类中serialVersionUID 值不一样.
两个序列化的值不一样。
我在profession里面没有指定序列化的值。
和远程指定一样的就好了。
明天的计划
小课堂,任务六
禅道链接
http://task.ptteng.com/zentao/task-view-14263.html
评论