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返回json时出现,大概有以下解决方案可以尝试:
1.由于在action中Service层的注入加入了对应的get()和set()方法,返回的json对象会将这个get方法当作实体类的属性来返回,那么删掉service的get()方法就可以了。
2.在action中除了get属性()方法之外,最好不要定义get开头的action方法,否则ajax调用时会执行这个方法。
3.遇到的两次问题分别用前2种方案解决了,在网上搜的时候发现还有一种方案是除了get属性()方法之外在其他getxxx()方法前面加注释@JSON(serialize=false), 如果前2种方案没有解决,可以试试这一种。
|