之前使用Idea,如果启动JBoss异常,然后点击关闭JBoss,就会造成整个Idea挂了.只有通过任务管理器关闭对应的idea和java进程才行.今天终于得空,来解决这个问题.
造成启动JBoss,终于出现异常,然后点关闭,出现死锁.果断使用visualvm查看.(很奇怪的是 jconsole检测不到死锁.)
“JBoss Shutdown Hook” daemon prio=10 tid=0x0000000056fa8000 nid=0×2525 waiting for monitor entry [0x0000000047184000]
java.lang.Thread.State: BLOCKED (on object monitor)
at org.jboss.web.AbstractWebContainer.stop(AbstractWebContainer.java:494)
死锁的问题出现.然后直接google,发现网上有一篇介绍,原因是
基本确定问题,开始找解决的办法..直接查看对应的线程堆栈,看看哪里调用了system.exit.
查看后发现..
查看对应的类,果然
} catch (Exception e) {
diamondLog.error("receive wrong sessionConfig and discard:" + configInfo,e);
if (initialized.get()) {
diamondLog.error("receive wrong sessionConfig and discard it", e);
return;
} else {
diamondLog.error("receive wrong sessionConfig and webServer halt", e);
System.exit(0);
}
}
差不多就是session init的时候出错了. 同事雷文根据我的IP在后台帮忙看了对应的出错日志.
可以看到是对应的group传错了.
<filter> <filter-name>sessionFilter</filter-name> <filter-class>com.taobao.session.TaobaoSessionFilter</filter-class> <init-param> <param-name>tbsessionConfigGroup</param-name> <param-value>${tbsession.configserver.group}</param-value> </init-param> <init-param> <param-name>isloginSessionCheck</param-name> <param-value>true</param-value> </init-param> <init-param> <param-name>traceEnabled</param-name> <param-value>false</param-value> </init-param> </filter>
到这里基本就明确了,重新package..重启,问题解决.
但是每次重启idear都会重新update一次.所以又把没有替换的代码copy到对应的目录,对于这个问题.解决方法是关闭启动的时候的make.如下
最后,万分感谢雷文童鞋的帮助