问大家一个很急的问题:
 在SSH下 用ApplicationContextAware取不到指定的bean,返回NullPointerException异常
 有人遇到过吗? 请问是怎么处理的?   在线等待....代码如下:一 SpringContextUtil 类import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;/**
 * 功能描述:获取spring容器,以访问容器中定义的其他bean
 * @author llp
 * @version 1.0 2010-11-16
 */
public class SpringContextUtil implements ApplicationContextAware {  // Spring应用上下文环境   
    private static ApplicationContext applicationContext;  
    
public void setApplicationContext(ApplicationContext applicationContext)
throws BeansException {
SpringContextUtil.applicationContext = applicationContext;
} public static ApplicationContext getApplicationContext() {
return applicationContext;
}

/**
 * 描述: 传入bean的名称得到bean
 * @author llp
 * @version 1.0 2010-11-16
 * @param name
 * @return
 * @throws BeansException
 *
 */
public static Object getBean(String beanName)throws BeansException {
System.out.println("name===="+beanName);
return applicationContext.getBean(beanName);

}二,获取Bean SocketThread.java
AccessService access = (AccessService)SpringContextUtil.getBean("accessService");    ----------第91行报错: java.lang.NullPointerException
at zhhy.web.aims.aimssocket.logic.util.SpringContextUtil.getBean(SpringContextUtil.java:37)
at zhhy.web.aims.aimssocket.socket.SocketThread.run(SocketThread.java:91)
at java.lang.Thread.run(Unknown Source) 

解决方案 »

  1.   

    那你用这一招吧    很管用
    ApplicationContext ctx = WebApplicationContextUtils
    .getRequiredWebApplicationContext(session.getServletContext());
    ServiceImpl serviceImpl = (ServiceImpl) ctx
    .getBean("serviceImpl");
    配置文件<bean id="serviceImpl" class="com.ServiceImpl" scope="prototype">
    <property name="sqlMapClientTemplate">
    <ref bean="sqlMapClientTemplate"/>
    </property>
    </bean>
      

  2.   

       谢谢 gudankangti1987 
     但在我的这些类中是取不到session的 所以不适合! 
     
      

  3.   

    SpringContextUtil 有注入吗?
      

  4.   

      有,在applicationContext.xml中  <bean id="SpringContextUtil "     
        class="zhhy.web.aims.logic.util.ApplicationContextUtil" ></bean>
        
     刚才调试的时候发现在启动服务器的时候可能得到ApplicationContext对象也可能得到Bean,
    但在具体的类中就得不到了,得到的ApplicationContext对象是null。
      

  5.   

    你写错了<bean id="SpringContextUtil "   
      class="zhhy.web.aims.logic.util.SpringContextUtil" ></bean>
      

  6.   

       呵呵,不好意思,是我在发贴的时候写错了
     是这个
    <bean id="SpringContextUtil "       class="zhhy.web.aims.logic.util.SpringContextUtil" > </bean> 
      

  7.   

    获取Bean SocketThread.java
    改成这样试试AccessService access = (AccessService)SpringContextUtil.getApplicationContext.getBean("accessService");还有accessService有注入吧,看看拼写是否正确。
      

  8.   

    我也遇到这种情况了,程序报空指针错误。
    action控制类中ApplicationContext context = SpringContextUtil.getApplicationContext();orderInfoWLogic = (OrderInfoWLogic) context.getBean("orderInfoWLogic");关注一下,求解答
      

  9.   

    bean中加了【scope="prototype"】后,对系统的效率有影响不?加了它之后有作用不?