Changes between Version 3 and Version 4 of youhua/2017_1
- Timestamp:
- 01/16/2017 04:23:57 PM (9 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
youhua/2017_1
v3 v4 47 47 '''原因'''[[BR]] 48 48 1、2点的错误原因比较明显,原因是在代码执行的时候没有经过过滤器,EnvUtils.getEnv()只是把Env实例化了,env对象里的servletContext参数是空的,没有进行设置,调用的时候就报空指针异常了。[[BR]] 49 第3点报错的原因是因为EnvUtils.getEnv()用到了线程单例(代码如下),当线程第一次调用时threadLocal会实例一个Env对象,之后这个线程再调用都只返回这个对象,而且只能被这个线程调用,当在处理请求过程中如果新启了线程再调用EnvUtils.getEnv() 就会得到一个新的Env实例,这个实例和1、2一样,没有设置env对象里的servletContext参数,调用env.getBean(xxx.class)的时候就会报空指针异常。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)