所报异常:
org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: java.lang.IllegalAccessException: Class org.apache.struts2.json.JSONWriter
can not access a member of class org.springframework.aop.TruePointcut with modifiers "public
acion中:
public class SubjectAction extends ActionSupport {
private String subjectName;
private BaseService baseService;
private AddResult result = new AddResult();
public String addSubject(){
UserInfo u = (UserInfo)ActionContext.getContext().getSession().get("user");
if(u == null){
result.setType((byte)0);
result.setNote("session超时,请重新登陆");
return "time_out";
}
School school = u.getUserType().getSchool();
try{
short subjectId = baseService.addSubject(school,subjectName);
result.setType((byte)1);
result.setId((int)subjectId);
result.setNote("科目添加成功");
}catch(RuntimeException re){
result.setType((byte)2);
result.setNote("科目添加失败");
return "fail";
}
return "suc";
}
public String getSubjectName() {
return subjectName;
}
public void setSubjectName(String subjectName) {
this.subjectName = subjectName;
}
public BaseService getBaseService() {
return baseService;
}
public void setBaseService(BaseService baseService) {
this.baseService = baseService;
}
public AddResult getResult() {
return result;
}
public void setResult(AddResult result) {
this.result = result;
}
}
解决办法:
action中的service是spring注入的所以只需要set方法就行,去掉get方法。
总结:
需要返回什么数据就生成该字段对应的get方法。

本文介绍了一个关于 Struts2 框架中 JSON 处理出现的异常问题及解决方案。具体表现为 org.apache.struts2.json.JSONException 的无限递归异常,并提供了具体的代码示例。最终通过调整 Spring 注入的服务实现解决了问题。
2463

被折叠的 条评论
为什么被折叠?



