ajax请求action,使用struts2返回json数据时提示org.apache.struts2.json.JSONException: java.lang.reflect.Invocation

 
 

以下是错误提示代码:

org.apache.struts2.json.JSONException: java.lang.reflect.InvocationTargetException
	org.apache.struts2.json.JSONWriter.bean(JSONWriter.java:246)
	org.apache.struts2.json.JSONWriter.processCustom(JSONWriter.java:178)
	org.apache.struts2.json.JSONWriter.process(JSONWriter.java:168)
	org.apache.struts2.json.JSONWriter.value(JSONWriter.java:134)
	org.apache.struts2.json.JSONWriter.write(JSONWriter.java:102)
	org.apache.struts2.json.JSONUtil.serialize(JSONUtil.java:116)
	org.apache.struts2.json.JSONResult.createJSONString(JSONResult.java:196)
	org.apache.struts2.json.JSONResult.execute(JSONResult.java:170)

叙述:

今天使用ajax请求action,struts2配置文件中配置好了返回json格式的数据。但是无论如何都会进入ajax的error函数中。

几经调试也无法解决,我只能定位到是java文件出现了问题,但是无法得知是哪里出现的问题 因为ajax请求的方法 只有两句话 一句是定义了String变量 值是success 另一句是return 这个变量

今天被这个问题困扰了至少8小时 一天的工作时间。。。 

在最后的即将下班的半小时喝下班后的接近一小时 终于找到了错误原因。

错误产生原因是:

在action中设置了非属性字段的get方法。非属性字段的意思是 

private Map session;

private HttpServletRequest request;

这两个就是非属性字段 只需要在该字段的get方法中使用@JSON(seralisze=false) 即可解决 为了避免一些其他的不得知的事件发生 我最后还是把get方法删除了  只保留了该字段的set方法! 今记此博文留下印记供日后不再犯!

特别感谢一下小伙伴 没有他的帮助我可能现在依然还在困惑中,并且可能现在还没准备下班

他的名字就叫博文 所以在此就不打“马赛克”了 

特别鸣谢!

猜你喜欢

转载自blog.csdn.net/cm777/article/details/79871199