设为首页 收藏本站
查看: 327|回复: 0

[经验分享] 异常:org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONExcepti

[复制链接]

尚未签到

发表于 2017-1-6 09:05:02 | 显示全部楼层 |阅读模式
控制台打印异常如下:

2013-05-16 17:22:26 com.tianque.core.struts.interceptor.ExceptionInterceptor.intercept(ExceptionInterceptor.java:28)-[ERROR] 拦截到异常:org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: java.lang.reflect.InvocationTargetException -(:28)
2013-05-16 17:22:26 com.tianque.core.struts.interceptor.ExceptionInterceptor.intercept(ExceptionInterceptor.java:29)-[ERROR] org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: java.lang.reflect.InvocationTargetException
at org.apache.struts2.json.JSONWriter.bean(JSONWriter.java:243)
at org.apache.struts2.json.JSONWriter.process(JSONWriter.java:165)
at org.apache.struts2.json.JSONWriter.value(JSONWriter.java:131)
at org.apache.struts2.json.JSONWriter.write(JSONWriter.java:99)
at org.apache.struts2.json.JSONUtil.serialize(JSONUtil.java:112)
at org.apache.struts2.json.JSONResult.execute(JSONResult.java:198)
at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:362)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:266)
at com.opensymphony.xwork2.interceptor.LoggingInterceptor.intercept(LoggingInterceptor.java:56)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.tianque.core.struts.interceptor.ExceptionInterceptor.intercept(ExceptionInterceptor.java:26)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:165)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
at com.tianque.core.web.filter.ClearThreadVariable.doFilter(ClearThreadVariable.java:25)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
at org.mortbay.servlet.UserAgentFilter.doFilter(UserAgentFilter.java:78)
at org.mortbay.servlet.GzipFilter.doFilter(GzipFilter.java:131)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:399)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450)
at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:326)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:928)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
Caused by: org.apache.struts2.json.JSONException: java.lang.reflect.InvocationTargetException
at org.apache.struts2.json.JSONWriter.bean(JSONWriter.java:243)
at org.apache.struts2.json.JSONWriter.process(JSONWriter.java:165)
at org.apache.struts2.json.JSONWriter.value(JSONWriter.java:131)
at org.apache.struts2.json.JSONWriter.array(JSONWriter.java:418)
at org.apache.struts2.json.JSONWriter.process(JSONWriter.java:155)
at org.apache.struts2.json.JSONWriter.value(JSONWriter.java:131)
at org.apache.struts2.json.JSONWriter.add(JSONWriter.java:329)
at org.apache.struts2.json.JSONWriter.bean(JSONWriter.java:228)
... 98 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.struts2.json.JSONWriter.bean(JSONWriter.java:227)
... 105 more
Caused by: java.lang.NullPointerException
at java.util.Calendar.setTime(Calendar.java:1070)
at java.text.SimpleDateFormat.format(SimpleDateFormat.java:859)
at java.text.SimpleDateFormat.format(SimpleDateFormat.java:852)
at java.text.DateFormat.format(DateFormat.java:316)
at com.tianque.domain.vo.IssueViewObject.getOccurDateString(IssueViewObject.java:401)
... 110 more


仔细看最后一段,不可小觑:Caused by: java.lang.NullPointerException
at java.util.Calendar.setTime(Calendar.java:1070)
at java.text.SimpleDateFormat.format(SimpleDateFormat.java:859)
at java.text.SimpleDateFormat.format(SimpleDateFormat.java:852)
at java.text.DateFormat.format(DateFormat.java:316)
at com.tianque.domain.vo.IssueViewObject.getOccurDateString(IssueViewObject.java:401)
... 110 more


IssueViewObject.java


public class IssueViewObject implements Serializable {
           ……………………
           ……………………
public String getOccurDateString() {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH");
String nowTime = format.format(this.occurDate);
String now = nowTime.substring(nowTime.length() - 2, nowTime.length());
String time = "凌晨";
if (6 <= Integer.parseInt(now) && Integer.parseInt(now) < 12) {
time = "上午";
} else if (12 <= Integer.parseInt(now) && Integer.parseInt(now) < 18) {
time = "下午";
} else if (18 <= Integer.parseInt(now) && Integer.parseInt(now) < 24) {
time = "晚上";
}
return nowTime.substring(0, nowTime.length() - 2) + " " + time;
}
}


debug模式启动,根据控制台报错IssueViewObject.getOccurDateString(IssueViewObject.java:401)定位getOccurDateString() 中this.occurDate,发现它是null,解决方法

public class IssueViewObject implements Serializable {
           ……………………
           ……………………
public String getOccurDateString() {
if (null == occurDate)
return null;

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH");
String nowTime = format.format(this.occurDate);
String now = nowTime.substring(nowTime.length() - 2, nowTime.length());
String time = "凌晨";
if (6 <= Integer.parseInt(now) && Integer.parseInt(now) < 12) {
time = "上午";
} else if (12 <= Integer.parseInt(now) && Integer.parseInt(now) < 18) {
time = "下午";
} else if (18 <= Integer.parseInt(now) && Integer.parseInt(now) < 24) {
time = "晚上";
}
return nowTime.substring(0, nowTime.length() - 2) + " " + time;
}
}

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-324498-1-1.html 上篇帖子: Logging,Apache Common-Logging/SLF4J, Log4J/Logback 下篇帖子: Apache的httpd.conf文件常用指令
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

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