• Category Archives: 未分类

取消tomcat自动重载,采用JRebel实时加载进行热部署

一直都觉得myeclipse+tomcat开发ssh的效率太慢了,主要是因为每次更改后调试都需要重启服务器,就算使用tomcat自身的reloadable,速度野太慢了,跟重启服务器所花的时间差不多,而且修改后session等信息也会丢失,效果跟重启几乎一样。

经过一番努力的资料搜集,发现了一个很不错的Myeclipse的JRebel插件(也有Eclipse版本的)。

因为我使用的是 MyEclipse 2013,服务器是 Tomcat 6.0,因此以下教程将以这个版本为例:

打开 Myeclipse 2013,点击菜单中 Help 的 Install from Site,在打开的窗口中点 Add 按钮, Name处填JRebel,Location处填http://www.zeroturnaround.com/update-site/,然后点ok确定,在下方的列表中选择对应的Eclipse版本然后Next继续:

2222222222

 

接着根据提示完成安装。

安装完成后,对JRebel进行激活,我们点击 Help 中的 JRebel Config Center,在界面中点击Activation,在or paste your license code here下方的文本框中填入对应的激活码即可。

333333333

如果你没有激活码,则可以进入https://my.jrebel.com/使用facebook或twiter账号登陆并购买0元的免费Social版本激活码,此激活码能使用一年时间。

如果激活码有效,则有效果会有蓝色的提示框显示“JRebel Actived”。

接着在菜单打开windows中的preferences并进入对应的tomcat6.0版本,会看见多了两个关于JRebel settings的选项,我们把这两个选项都勾上,然后在tomcat中的jdk设置中的Optional Java VM arguments填上以下配置信息:

-Drebel.spring_plugin=true
-Drebel.aspectj_plugin=true
-Drebel.struts2_plugin=true
-noverify
-Xms512m -Xmx512m -XX:MaxNewSize=512m -XX:MaxPermSize=512m

其中-Xms512m -Xmx512m -XX:MaxNewSize=512m -XX:MaxPermSize=512m是为了避免jvm的内出不足的情况出现。(JRebel占用内存太大了)

ok,保存,接下来做最后一步功夫,右击你的Myeclipse项目,在弹出的菜单中选择Add JRebel Nature,然后你会发现你的项目src文件夹中多了一个名为rebel.xml的配置文件(如果你不需要手工设置,则你不需要修改这个文件),知道这里,配置已经成功,此时我们启动tomcat,我们会发现console有对应的JRebel输出,这样就大功告成了。

好了,享受愉快的编程之旅吧!

(太懒了,工作中抽时间写这文章,无奈只好忽略细节很多,还望见谅,大家还是多多锻炼一下解决问题的思维吧~~)

mysql无法启动,提示”ERROR! The server quit without updating PID file (/var/lib/mysql/sway.pro.pid).”

某次重启后, 发现再也不能启动mysql服务器了.

使用 service mysql restart 指令, 却提示:

[root@sway ~]# service mysql restart
ERROR! MySQL server PID file could not be found!
Starting MySQL... ERROR! The server quit without updating PID file (/var/lib/mysql/sway.pro.pid).

回想了一下刚刚的操作, 我曾经不小心把在系统根目录使用的递归权限设置指令 chown -R virtual / , 致使出现了一连串的问题(本来我是想添加所有文件夹的修改权限给virtual的,没想到是全部改成了权限只属于virtual一人了), 当我重新使用 chown -R root / 指令后, 发现基本恢复正常了. 后来经历了一次重启, 发现我服务器的网站提示数据库连接出错, 于是上网搜索了一堆资料, 一开始还以为是什么僵尸进程导致的, 后来继续找, 发现是权限问题, 估计是mysql丢失了原本是属于他的文件权限了.

使用这个指令”chown -R mysql.mysql /var/lib/mysql”后, 再使用  service mysql start 指令, 一切正常..!

以下是我找到的原文记录:

现在又进行了如下操作:
mkdir /var/lib/mysql
chown -R mysql.mysql /var/lib/mysql

然后再运行mysqld_safe --user=mysql &

发现还是错误,立马进入/var/lib/mysql进行查看,发现文件夹里面的文件,不是lib文件,而是mysql数据库
发现问题,立马在mysqld_safe后面加上--basedir和--datadir目录,结果可以运行,而且一切正常

后修改mysql服务启动文件,修改basedir和datadir,结果启动发现sock出错。

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

目前继续排错中。。。。

一到公司运行
/usr/local/mysql/bin/mysqld_safe --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --user=mysql &
发现又出现错误了,NND

出自于: http://forum.ubuntu.org.cn/viewtopic.php?t=333605

close