现在的位置: 首页 > 综合 > 正文

JSONException: java.lang.reflect.InvocationTargetException

2018年05月26日 ⁄ 综合 ⁄ 共 3651字 ⁄ 字号 评论关闭
package com.newland.honeyweek.json.action;

import java.io.Serializable;
import java.util.List;

import javax.annotation.Resource;

import net.sf.json.JSONObject;

import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.ParentPackage;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.Results;
import org.apache.struts2.json.annotations.JSON;

import com.newland.honeyweek.common.PageResultSet;
import com.newland.honeyweek.common.Pager;
import com.newland.honeyweek.model.Honey;
import com.newland.honeyweek.model.Letter;
import com.newland.honeyweek.service.LetterService;
import com.newland.honeyweek.service.PhotoService;
import com.newland.honeyweek.service.UserService;
import com.opensymphony.xwork2.ActionSupport;

@SuppressWarnings("serial")
@ParentPackage("json-default") 
@Namespace("/")
@Action("jsonAction")
@Results(value = {
		@Result(name = "test",type="json") })
public class JsonAction extends ActionSupport implements Serializable {
	@Resource
	private UserService userService;
	@Resource
	private LetterService letterService;
	@Resource
	private PhotoService photoService;
	private Pager pager = new Pager();
	private Letter letter;
	private PageResultSet<Honey> pageResultSet;
	private PageResultSet<Letter> letterPage;
	private String jsonResult;

	@Override
	public String execute() throws Exception {
		return super.execute();
	}

	public String inBoxTest() {
		String hql = "From Letter letter where letter.toWho='2@qq.com' group by letter.toWho order by sendTime desc";
		letterPage = letterService.queryByPage(hql, 12, pager.getOffset());
		List<Letter> list=letterPage.getRows();
		PageResultSet<Letter> ret=new PageResultSet<Letter>();
		ret.setRows(list);
		ret.setRowCount(list.size());
		JSONObject jsonObject = JSONObject.fromObject(ret);
		jsonResult=jsonObject .toString();
		System.out.println(jsonResult);
		return "test";
	}
        //以下三个getter and setter方法导致了本次的错误
        public UserService getUserService() {
		return userService;
	}
	public void setUserService(UserService userService) {
		this.userService = userService;
	}
	public LetterService getLetterService() {
		return letterService;
	}
	public void setLetterService(LetterService letterService) {
		this.letterService = letterService;
	}
	public PhotoService getPhotoService() {
		return photoService;
	}
	public void setPhotoService(PhotoService photoService) {
		this.photoService = photoService;
	}
	public Pager getPager() {
		return pager;
	}
	public void setPager(Pager pager) {
		this.pager = pager;
	}
	public Letter getLetter() {
		return letter;
	}
	public void setLetter(Letter letter) {
		this.letter = letter;
	}
	public PageResultSet<Honey> getPageResultSet() {
		return pageResultSet;
	}
	public void setPageResultSet(PageResultSet<Honey> pageResultSet) {
		this.pageResultSet = pageResultSet;
	}
	public PageResultSet<Letter> getLetterPage() {
		return letterPage;
	}
	public void setLetterPage(PageResultSet<Letter> letterPage) {
		this.letterPage = letterPage;
	}
	@JSON(serialize = false)
	public String getJsonResult() {
		return jsonResult;
	}
	public void setJsonResult(String jsonResult) {
		this.jsonResult = jsonResult;
	}

	

}
$(function() {
			$('#hrUser_datagrid').datagrid({
				url : '<%=request.getContextPath()%>/jsonAction!inBoxTest.action',
				fit : true,
				fitColumns : true,
				border : false,
				pagination : true,
				idField : 'id',
				pageSize : 10,
				pageList : [ 10, 20, 30, 40, 50 ],
				checkOnSelect : false,
				selectOnCheck : false,
				onClickRow : function(value,row,index){
					HrUser.initHrUserGrid(row.userId,subSysCode);
				},
				nowrap : false,
				frozenColumns : [ [ 
				{title : '信件编码',field : 'id',width : 150,checkbox : true}] ],
				columns : [ [ 
				{title : '发件人',field : 'fromWho',width : 150},
				{title : '收件人',field : 'toWho',width : 150},
				{title : '发送时间',field : 'sendTime',width : 150},
				{title : '接收时间',field : 'receiveTime',width : 150},
				{title : '状态',field : 'statue',width : 150},
		 		{title : '消息内容',field : 'message',width : 150} ] ],
		 		toolbar :'#toolbar'
			});

		});

纠其原因:是因为struts2的json控件把service类当成属性对象返回了

抱歉!评论已关闭.