为了账号安全,请及时绑定邮箱和手机立即绑定

一测试方法就显示空指针异常 , 打印出来发现 getSession() 是 null ,是什么情况?

一测试方法就显示空指针异常 , 打印出来发现 getSession() 是 null ,是什么情况?

慕标5832272 2022-05-06 07:07:48
package action;import java.util.List;import util.GeneralAction;public class FindAction extends GeneralAction{private static final long serialVersionUID = 1L;public List<String> getNames() {return (List<String>)getSession().get("names");}public void setNames(List<String> names) {getSession().put("names", names);}//查找角色名称是否存在public boolean checkRole(String name){System.out.println(getSession());//此处控制台打印为nullList<String> names = getNames();System.out.println(names);if(names == null){names = daoFactory.getRoleDa().getAllRoleName();setNames(names);}if(names.contains(name)){return false;}return true;}}getSession在父类GeneralAction中定义了,项目是SSH三个框架整合的,又加了个dwr,所以Action都是放在Spring容器中的,dwr我写了2个测试类,一个是dao类,测试通过,另一个额就是这个action了,也显示生成成功,但一测试方法就显示空指针异常 - -打印出来才发现 getSession() 是 null别的地方调用的时候都很正常,这是怎么回事啊?问题我自己知道了,dwr有自己获得session的方式,而不能用struts的方式获得sessiondwr要用 WebAction 来获得 session代码; WebAction web = WebActionFactory.get().getSession();谢谢各位了
查看完整描述

1 回答

?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

你可能有两个地方没有配置:
1、SessionFactory
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

</bean>

2、在GeneralAction、FindAction 的bean注入SessionFactory
<bean id="GeneralAction" class="...GeneralAction">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<bean id="FindAction " class="...FindAction ">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>

PS:配置过后重启试试



查看完整回答
反对 回复 2022-05-10
  • 1 回答
  • 0 关注
  • 231 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信