- 2015-08-27 09:53:16,463 [localhost-startStop-1] DEBUG [org.springframework.jndi.JndiTemplate] - Looking up JNDI object with name [java:comp/env/spring.liveBeansView.mbeanDomain]
- 2015-08-27 09:53:16,463 [localhost-startStop-1] DEBUG [org.springframework.jndi.JndiLocatorDelegate] - Converted JNDI name [java:comp/env/spring.liveBeansView.mbeanDomain] not found - trying original name [spring.liveBeansView.mbeanDomain]. javax.naming.NameNotFoundException: Name [spring.liveBeansView.mbeanDomain] is not bound in this Context. Unable to find [spring.liveBeansView.mbeanDomain].
- 2015-08-27 09:53:16,463 [localhost-startStop-1] DEBUG [org.springframework.jndi.JndiTemplate] - Looking up JNDI object with name [spring.liveBeansView.mbeanDomain]
- 2015-08-27 09:53:16,464 [localhost-startStop-1] DEBUG [org.springframework.jndi.JndiPropertySource] - JNDI lookup for name [spring.liveBeansView.mbeanDomain] threw NamingException with message: Name [spring.liveBeansView.mbeanDomain] is not bound in this Context. Unable to find [spring.liveBeansView.mbeanDomain].. Returning null.
上面是爆出的異常信息,從中可以很清晰的看出異常來自JNDI的數據源配置,可是我的項目中沒有配置使用JNDI,至於引起這個異常的原因,查閱了很多資料,有人說是jar的問題,有人說是spring配置的問題,國外有人分析稱是spring內部的問題,具體什么因素造成的本人沒有去研究,希望有看到的朋友,能留言,謝謝啦,ps(自我理解,不管對錯都要勇敢說出來,不說永遠不知道對錯,阻礙思路的角度),這個項目本人使用的是:spring3.2+springMVC+druid+mybatis3.2.2/spring-mybatis1.2.0
下面附上兩種解決方案:
1:從控制到打印的logo看,項目的日志級別應該至少有DEBUG級別:log4j.rootLogger = DEBUG,console,file
去配置文件中將debug級別換掉,或是用info。則不會再有此異常信息:log4j.rootLogger = info,console,file
2:在web.xml中增加如下配置,此方法是看外國朋友提供的,測試有效果
- <context-param>
- <param-name>spring.profiles.active</param-name>
- <param-value>dev</param-value>
- </context-param>
- <context-param>
- <param-name>spring.profiles.default</param-name>
- <param-value>dev</param-value>
- </context-param>
- <context-param>
- <param-name>spring.liveBeansView.mbeanDomain</param-name>
- <param-value>dev</param-value>
- </context-param>