Changes between Version 6 and Version 7 of youhua/2017_1
- Timestamp:
- 01/17/2017 02:22:13 PM (9 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
youhua/2017_1
v6 v7 46 46 47 47 '''原因'''[[BR]] 48 1、2点的错误原因比较明显,原因是在代码执行的时候没有经过过滤器,EnvUtils.getEnv()只是把Env实例化了,env对象里的servletContext 参数是空的,没有进行设置,调用的时候就报空指针异常了。[[BR]]49 第3点报错的原因是因为EnvUtils.getEnv()用到了线程单例(代码如下),当线程第一次调用时threadLocal会实例一个Env对象,之后这个线程再调用都只返回这个对象,而且只能被这个线程调用,当在处理请求过程中如果新启了线程再调用EnvUtils.getEnv()时,threadLocal就会新实例一个Env对象,这个实例和1、2一样,没有设置env里的servletContext 参数,调用env.getBean(xxx.class)的时候就会报空指针异常。48 1、2点的错误原因比较明显,原因是在代码执行的时候没有经过过滤器,EnvUtils.getEnv()只是把Env实例化了,env对象里的servletContext属性是空的,没有进行设置,调用的时候就报空指针异常了。[[BR]] 49 第3点报错的原因是因为EnvUtils.getEnv()用到了线程单例(代码如下),当线程第一次调用时threadLocal会实例一个Env对象,之后这个线程再调用都只返回这个对象,而且只能被这个线程调用,当在处理请求过程中如果新启了线程再调用EnvUtils.getEnv()时,threadLocal就会新实例一个Env对象,这个实例和1、2一样,没有设置env里的servletContext属性,调用env.getBean(xxx.class)的时候就会报空指针异常。 50 50 {{{ 51 51 public class EnvUtils {
![(please configure the [header_logo] section in trac.ini)](http://www1.pconline.com.cn/hr/2009/global/images/logo.gif)