天翎MyApps技术社区 - 低代码平台 | 流程管理系统 | BPM软件

 找回密码
 注册成为天翎用户
查看: 6420|回复: 8

[整合] ServletActionContext.getRequest()空指针问题

[复制链接]
lejuo 发表于 2011-4-26 23:03:42 | 显示全部楼层 |阅读模式
ServletActionContext.getRequest()空指针问题

我的表单内部有按钮,还有视图选择框,
2011-4-26 22-50-19.png
当点击“视图选择框”,选择视图中一条记录后,系统会执行void cn.myapps.core.dynaform.activity.ejb.ActivityType.addButton(String innerText, String function, String className, int permissionType)
的以下代码:
  1.                 HttpSession session = ServletActionContext.getRequest().getSession();
  2.                 String skinType = (String) session.getAttribute("SKINTYPE");
  3.                 if (skinType != null && !skinType.equals("") && skinType.equals("gray")) {
  4.                         htmlBuilder.append("<input icon='icon-save' type='button' ");
  5.                         htmlBuilder.append(" name='" + getButtonId() + "'");
  6.                         htmlBuilder.append(" title='" + act.getName() + "'");
  7.                         if (PermissionType.MODIFY == permissionType) {
  8.                                 htmlBuilder.append(" onclick="" + function + """);
  9.                         }
  10.                         if (PermissionType.DISABLED == permissionType) {
  11.                                 htmlBuilder.append(" disabled='disabled'");
  12.                         }
  13.                         htmlBuilder.append(" value='" + innerText + "'>&nbsp;&nbsp;");
  14.                 }
复制代码
可是,调试这段代码时候,发现ServletActionContext.getRequest()是空指针了?
执行完这段代码后,报出异常:
  1. java.lang.NullPointerException
  2.         at cn.myapps.core.dynaform.activity.ejb.ActivityType.addButton(ActivityType.java:403)
  3.         at cn.myapps.core.dynaform.activity.ejb.ActivityType.toButtonHtml(ActivityType.java:316)
  4.         at cn.myapps.core.dynaform.activity.ejb.Activity.toButtonHtml(Activity.java:835)
  5.         at cn.myapps.core.dynaform.form.ejb.ButtonField.toHtmlTxt(ButtonField.java:121)
  6.         at cn.myapps.core.dynaform.form.ejb.FormField.getRefreshScript(FormField.java:1225)
  7.         at cn.myapps.core.dynaform.form.ejb.TabNormal.getRefreshScript(TabNormal.java:393)
  8.         at cn.myapps.core.dynaform.form.ejb.TabField.getRefreshScript(TabField.java:190)
  9.         at cn.myapps.core.dynaform.form.action.FormHelper.refresh(FormHelper.java:558)
  10.         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  11.         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  12.         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  13.         at java.lang.reflect.Method.invoke(Method.java:589)
  14.         at uk.ltd.getahead.dwr.impl.ExecuteQuery.execute(ExecuteQuery.java:239)
  15.         at uk.ltd.getahead.dwr.impl.DefaultExecProcessor.handle(DefaultExecProcessor.java:48)
  16.         at uk.ltd.getahead.dwr.impl.DefaultProcessor.handle(DefaultProcessor.java:81)
  17.         at uk.ltd.getahead.dwr.AbstractDWRServlet.doPost(AbstractDWRServlet.java:162)
  18.         at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
  19.         at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
  20.         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
  21.         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  22.         at cn.myapps.base.web.dwr.filter.DWRFilter.doFilter(DWRFilter.java:44)
  23.         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
  24.         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  25.         at com.opensymphony.webwork.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:177)
  26.         at cn.myapps.base.web.filter.OBPMFilterDispatcher.doFilter(OBPMFilterDispatcher.java:43)
  27.         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
  28.         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  29.         at cn.myapps.base.web.filter.AjaxMultiLanguageFilter.doFilter(AjaxMultiLanguageFilter.java:40)
  30.         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
  31.         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  32.         at cn.myapps.base.web.filter.PersistenceFilter.doFilter(PersistenceFilter.java:30)
  33.         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
  34.         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  35.         at cn.myapps.base.web.filter.SecurityFilter.doFilter(SecurityFilter.java:72)
  36.         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
  37.         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  38.         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
  39.         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
  40.         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
  41.         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
  42.         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
  43.         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
  44.         at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:852)
  45.         at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:584)
  46.         at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1508)
  47.         at java.lang.Thread.run(Thread.java:619)
  48. 23:02:03,921  WARN DefaultExecProcessor:59 - Erroring: id[4503_1303830123531] message[uk.ltd.getahead.dwr.OutboundVariable@cfd69]
复制代码
cynthia1 发表于 2011-4-27 10:42:56 | 显示全部楼层
你好,你的问题已收到,但暂时我处理不了,但我会尽快将你的问题转给其他技术人员,给您造成的不便敬请谅解。
cynthia1 发表于 2011-4-27 10:59:47 | 显示全部楼层
HttpSession session =getContext().getSession();
这样获取session试试
 楼主| lejuo 发表于 2011-4-27 12:42:32 | 显示全部楼层
回复 3# cynthia1


    这样改是否合适,怎么会出现这样一个空指针的问题的?
 楼主| lejuo 发表于 2011-4-27 12:47:14 | 显示全部楼层
回复 3# cynthia1


    这样改不行的呀。The method getContext() is undefined for the type ActivityType
cynthia1 发表于 2011-4-27 13:00:03 | 显示全部楼层
你这问题先等等,我让同事帮你跟进
cynthia1 发表于 2011-4-27 13:00:44 | 显示全部楼层
对了,你是更改了原代码吗
 楼主| lejuo 发表于 2011-4-27 15:47:37 | 显示全部楼层
回复 7# cynthia1


   没有呀,没有更改任何代码
 楼主| lejuo 发表于 2011-4-28 16:04:36 | 显示全部楼层
回复 7# cynthia1


    有人说这段代码不能在ejb包里面访问session,session会不确定的消亡呀,怎么办?

本版积分规则

QQ|手机版|天翎MyApps技术社区 ( 粤ICP备11093750号 )

GMT+8, 2026-8-12 11:35

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表