ajax + struts2 return 404 Code

场景描述:

项目上线已经5个多月了,一直很稳定,昨天晚上一个界面(其他界面正常)突然返回404错误,一开始以为是url出现问题了,测试后发现发送请求后后台正常执行,

直到return SUCCESS时返回404错误。   

    & 开发环境:SSH2 + Easyui 1.3.6,jdk1.6
    & IDE:myeclipse10

    & 浏览器:google

JSP页面:

<table id="contractprofile" class="easyui-datagrid" fit="true" title="" style="width:auto;height:auto"
        data-options="loadMsg:'正在加载商务合同列表,请稍等 ... ',iconCls: 'icon-edit',rownumbers:true,
				singleSelect: true,toolbar: '#contractprofiletools',
                method: 'get', pagination:true,pageList:[20,50,100],pageSize:20,
				onDblClickRow:onDblClickRow,onLoadError:onLoadError, onRowContextMenu : onRowContextMenu">
        <thead>
            <tr>
                <th data-options="field:'erpstate',width:45,align:'center',formatter:erpStateFormater">ERP</th>
                <th data-options="field:'infostate',width:45,align:'center',formatter:infoStateFormater">Info</th>
                <th hidden="true" data-options="field:'auditingestate',width:45,align:'center'">Info合同状态</th>
                <th data-options="field:'contractno',width:100,align:'center'">合同编号</th>
                <th data-options="field:'contractname',width:150,align:'center'">项目名称</th>
                <!-- <th data-options="field:'purchasecompany',width:150,align:'center'">订货单位</th> -->
                <th data-options="field:'usecompany',width:150,align:'center'">使用单位</th>
                <th data-options="field:'contracttype',width:100,align:'center'">合同类型</th>
                <th data-options="field:'signingdate',width:90,align:'center'">签定时间</th>
                <th data-options="field:'receiptdate',width:90,align:'center'">接受时间</th>
                <th data-options="field:'createuser',width:70,align:'center'">录入人</th>
                <th data-options="field:'createtime',width:90,align:'center'">录入时间</th>
                <th data-options="field:'auditingeuser',width:70,align:'center'">审核人</th>
                <th data-options="field:'auditingetime',width:90,align:'center'">审核时间</th>
            </tr>
        </thead>
    </table>
XML配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
    <package name="busincessContract" namespace="/busincessContract"
        extends="json-default">
        <action name="busincessContractList" method="busincessContractList"
            class="com.xjec.action.busincessContract.BusincessContractAction">
            <result type="json">
                <param name="root">result</param>
            </result>
        </action>   
     </package>
</struts> 
Java code:
private JSONObject result;
public JSONObject getResult() {
    return result;
}
public void setResult(JSONObject result) {
    this.result = result;
}
public String busincessContractList() throws IOException {
        try {
            logger.info("Into BusincessContractAction::busincessContractList() ... " + DateTools.getCurrentTime());
            String contractno = request.getParameter("contractno") == null ? "" : request.getParameter("contractno").trim();
            String erpstate = request.getParameter("erpstate") == null ? "" : request.getParameter("erpstate").trim();
            String infostate = request.getParameter("infostate") == null ? "" : request.getParameter("infostate").trim();
            String startReceiptDate = request.getParameter("startReceiptDate") == null ? "" : request.getParameter(
                    "startReceiptDate").trim();
            String endReceiptDate = request.getParameter("endReceiptDate") == null ? "" : request.getParameter(
                    "endReceiptDate").trim();
            String startDate = request.getParameter("startDate") == null ? "" : request.getParameter("startDate").trim();
            String endDate = request.getParameter("endDate") == null ? "" : request.getParameter("endDate").trim();
            Integer page = request.getParameter("page") == null ? 1 : Integer.parseInt(request.getParameter("page")
                    .trim());
            Integer rows = request.getParameter("rows") == null ? 20 : Integer.parseInt(request.getParameter("rows")
                    .trim());
 
            List<String> params = new ArrayList<String>();
            params.add(contractno);
            params.add(erpstate);
            params.add(infostate);
            params.add(startReceiptDate);
            params.add(endReceiptDate);
            params.add(startDate);
            params.add(endDate);
 
            List<ShowsInfoBusinessContract> resultList = bcontractService.findBusinessContract(page, rows, params);
 
            Map<String, Object> jsonMap = new HashMap<String, Object>();// 定义map
            jsonMap.put("total", bcontractService.findBusinessContractAmount(page, rows, params));// total键
            // 存放总记录数
            jsonMap.put("rows", resultList);// rows键 存放每页记录 list
 
            // 格式化result一定要是JSONObject
            this.result = JSONObject.fromObject(jsonMap);
        } catch (Exception e) {
            e.printStackTrace();
        }
        String resultStr = String.valueOf(result);
        System.out.println(resultStr);//可以正常输出json格式的字符串
        return SUCCESS;
    }
<strong><span style="font-size:14px;">问题原因:</span></strong>
<span style="white-space:pre">	</span>由于后台程序返回404,所以可以肯定是因为没有找到目标资源造成,但具体是由什么原因造成的尚待查明。
<strong><span style="font-size:14px;">解决办法:</span></strong>

<span style="font-weight: bold;"><span style="font-size:14px;"><span><span style="font-size: 14px;">Java code:</span></span></span></span>
public String busincessContractList() throws IOException {
		try {
			logger.info("Into BusincessContractAction::busincessContractList() ... " + DateTools.getCurrentTime());
			String contractno = request.getParameter("contractno") == null ? "" : request.getParameter("contractno").trim();
			String erpstate = request.getParameter("erpstate") == null ? "" : request.getParameter("erpstate").trim();
			String infostate = request.getParameter("infostate") == null ? "" : request.getParameter("infostate").trim();
			String startDate = request.getParameter("startDate") == null ? "" : request.getParameter("startDate").trim();
			String endDate = request.getParameter("endDate") == null ? "" : request.getParameter("endDate").trim();
			String startReceiptDate = request.getParameter("startReceiptDate") == null ? "" : request.getParameter("startReceiptDate").trim();
			String endReceiptDate = request.getParameter("endReceiptDate") == null ? "" : request.getParameter("endReceiptDate").trim();
			Integer page = request.getParameter("page") == null ? 1 : Integer.parseInt(request.getParameter("page").trim());
			Integer rows = request.getParameter("rows") == null ? 20 : Integer.parseInt(request.getParameter("rows").trim());

			List<String> params = new ArrayList<String>();
			params.add(contractno);
			params.add(erpstate);
			params.add(infostate);
			params.add(startDate);
			params.add(endDate);
			params.add(startReceiptDate);
			params.add(endReceiptDate);

			List<ShowsInfoBusinessContract> resultList = bcontractService.findBusinessContract(page, rows, params);

			Map<String, Object> jsonMap = new HashMap<String, Object>();// 定义map
			jsonMap.put("total", bcontractService.findBusinessContractAmount(page, rows, params));// total键
			// 存放总记录数,必须的
			jsonMap.put("rows", resultList);// rows键 存放每页记录 list
			this.result = JSONObject.fromObject(jsonMap);
		} catch (Exception e) {
			e.printStackTrace();
		}
		String resultStr = String.valueOf(result);
		System.out.println(<span style="font-family: Arial, Helvetica, sans-serif;">resultStr</span><span style="font-family: Arial, Helvetica, sans-serif;">);</span>
<span style="color:#003333;background-color: rgb(255, 0, 0);">		outputPage(<span style="font-family: Arial, Helvetica, sans-serif;">resultStr</span><span style="font-family: Arial, Helvetica, sans-serif;">);</span>
		return null;</span>
	}
	/**
	 * 将数据输出到前台页面
	 * 
	 * @throws IOException
	 */
	public void outputPage(String resultString) throws IOException {
		response.setContentType("text/html;charset=UTF-8");
		String result = resultString.toString();
		PrintWriter out = response.getWriter();
		out.print(result);
		out.flush();
		out.close();
	}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值