51Testing软件测试论坛

标题: HTTP Status-Code=500 (Internal Server Error) [打印本页]

作者: dian106106    时间: 2013-3-21 15:51
标题: HTTP Status-Code=500 (Internal Server Error)
用loadrunner 录制脚本回放的时候报错:
作者: dian106106    时间: 2013-3-21 15:53
然后在后台taocat 和用badboy录制在回放了一下,都是同样的错误:
作者: dian106106    时间: 2013-3-21 15:56
代码里相应的code:
/**
         * 校验是否重复预订
         * @return
         * @throws Exception
         */
        public String checkDoubleBooking()throws Exception{
                List doubleBookingList=this.travellerFlightCardService.doubleBookingResultForNewUI(bookDomesticAirVO);
                JSONArray jo=JSONArray.fromObject(doubleBookingList);
                this.result=jo.toString();
                return "Success";

        }

xml里:
<package name="doubleBooking" namespace="/doubleBooking" extends="project-json">
                <action name="checkDoubleBooking" class="com.citsamex.action.common.BookingAction" method="checkDoubleBooking">
                        <result type="json" name="Success">
                                <param name="root">result</param>
                        </result>
                </action>
        </package>
作者: dian106106    时间: 2013-3-21 15:58
本帖最后由 dian106106 于 2013-3-21 16:09 编辑

....
作者: dian106106    时间: 2013-3-21 15:59
本帖最后由 dian106106 于 2013-3-21 16:09 编辑

....
作者: dian106106    时间: 2013-3-21 16:06
本帖最后由 dian106106 于 2013-3-21 16:10 编辑

.....
作者: dian106106    时间: 2013-3-21 16:06
google baidu里很多的"解决方法" 都试了. 没凑效. 整了4天了.郁闷啊. 请高人指点! 需要相关code,小弟迅速贴.
这个是js里 的那个重复预订的方法:
function checkDoubleBooking($tr){
        var url=VAR_APPLICATION_PATH+"/doubleBooking/checkDoubleBooking.action";
        var param="";
        $(".travellerIds").each(function(index){
                param=param+"&bookDomesticAirVO.travellerIds="+$("input[name=travellerIds]:eq("+index+")").val();
        })
        $("input[type=hidden]").each(function(){
                param=param+"&"+$(this).attr("name")+"="+$(this).val();
        })
        param=param+"&bookDomesticAirVO.domesticAirlineAvsegOrgcitys="+$tr.attr("domesticAirlineAvsegOrgcity")+
                "&bookDomesticAirVO.domesticAirlineAvsegDstcitys="+$tr.attr("domesticAirlineAvsegDstcity")+
                "&bookDomesticAirVO.domesticAirlineAvsegDepdates="+$tr.attr("domesticAirlineAvsegDepdate")+"&date="+new Date();
        param=param.substring(1,param.length);
        $(".member").remove();
        $.post(url,param,function(data){
                var json=eval("("+data+")");
                $(".travellerIds").each(function(index){
                        var travellerId=$("input[name=travellerIds]:eq("+index+")").val();
                        var trs=$(this).parent().parent();
                        var nextTr=trs.next("tr");
                        var doubleFlag=false;
                        for(var i=0;i<json.length;i++){
                                if(travellerId==json[i].ttTravellerID ){
                                        doubleFlag=true;
                                        $(this).removeAttr("checked");
                                        break;
                                }
                        }
                        var certErrors=nextTr.find(".certErrors");
                        if(certErrors.length==0){
                                if(doubleFlag) {
                                        if(!nextTr.hasClass("doubleBookingErrors")){
                                                var travellerNameCN=$(this).parent().text();
                                                var travellerNameEN=$(this).parent().next("td").text();
                                                var doubleTr="<tr class='doubleBookingErrors'><td height='28' style=' padding:0;'>&nbsp;</td>"+
                                            "<td colspan='4'><span class='hred'>"+VAR_DOUBLE_NOTE+"</span> <span class='zshe'>"+travellerNameCN+"("+travellerNameEN+")"+VAR_DOUBLE_DESCRIBE+json[i].doubleOrderNo+"</span> </td></tr>";
                                                trs.after(doubleTr);
                                                $(this).attr("disabled","disabled");
                                        }
                                }else{
                                        if(nextTr.hasClass("doubleBookingErrors")){
                                                nextTr.remove();
                                        }
                                        $(this).removeAttr("disabled");
                                }
                        }
                        if($(".travellerIds").length==1 && $(".doubleBookingErrors").length>0){
                                $(".btn").hide();
                        }else{       
                                $(".sut").find("a").unbind("click");
                                $(".sut").find("a").bind("click",{msg:VAR_SELECT_TRAVELLER,trtr},commitToBooking);
                                showButtonPosition($(".Check"),$(".sut"),$(".sut-x"));
                        }
                        showFlightSegments($tr);
                        showPostion($(".Check"));
                })
        })
}
作者: lsekfe    时间: 2013-3-21 16:08
帮顶下~
作者: dian106106    时间: 2013-3-21 16:28
真心谢谢. 版主帮忙看看几眼吧
作者: dian106106    时间: 2013-3-21 16:36
自己的想法:   因为在这个重复预订之前 有个ajaxPolicyControl.action, 这个是异步加载的. 我猜想是不是请求顺序问题导致的. 但是tomcat 后台 没有报错,难道tomcat 没有检测到, loadrunner 可以检测??
作者: dian106106    时间: 2013-3-21 16:53
忘了贴前台的东西: 就是预订按钮 然后 弹出那个alert:
作者: dian106106    时间: 2013-3-21 16:55
截图
作者: edisonzhang    时间: 2013-3-22 15:32
你确定你提交的数据 没有问题?  建议先检查下
作者: joykao    时间: 2013-3-22 16:27
服务down了
作者: dian106106    时间: 2013-3-25 10:22
@13#
找了dev 看了下.   说是那个页面有ajax的东西,采用http/html 录制方式, loadrunner 在录制的时候没有抓到ajax的. 所以在回放的时候,就报错.

然后改了下代码:确实不报500了,但是是治标不治本的那种.只是不报500,还是没有ajax的东西.
private void afterInvoke(ActionInvocation invocation, LoggerEntity logEntity, Map session, Date startDate) {
                ActionContext context = invocation.getInvocationContext();
                HttpServletRequest request = (HttpServletRequest) context.get(ServletActionContext.HTTP_REQUEST);

                String header = request.getHeader("X-Requested-With");
                if (header != null && "XMLHttpRequest".equals(header)) {
                        logEntity.setActionFrom("ajax");
                        logger.error("====================is ajax!!" + invocation.getAction().getClass());
                } else {
                        logger.error("====================not ajax!!" + invocation.getAction().getClass());
                        if (invocation.getAction() instanceof BaseAction) {
                                BaseAction action = (BaseAction) invocation.getAction();
                                String actionFrom = action.getReturnUrl();
                                logEntity.setActionFrom(actionFrom);
                        }
                }

还说一点, 老的程序有验header信息, 由于在回放的时候没有header的内容,所有开始的时候就报500.后来就改成这样了.
作者: dian106106    时间: 2013-3-25 10:23
在老的基础上 加了
logger.error("====================is ajax!!" + invocation.getAction().getClass());

logger.error("====================not ajax!!" + invocation.getAction().getClass());
作者: 赵佳乐SMILE    时间: 2013-3-27 11:33
前天有一个这个错 开发说有个页面没编译成功
作者: temp20121017    时间: 2013-3-27 12:02
回复 15# dian106106


    我录制带有js的页面,,,也出现这个错误
作者: dian106106    时间: 2013-4-4 20:33
搞定了。一直忙,没有及时回帖。
由于是ajax的, 没有头信息。在请求之前加一些类似这样的头就可以了。
        web_add_header("(Request-Line)","POST /onlineHEAD/ajaxCheckCompanyLoginMode.action HTTP/1.1");
        web_add_header("Accept","application/json, text/javascript, */*; q=0.01");
        web_add_header("Content-Type","application/x-www-form-urlencoded");
        web_add_header("is-ajax","true");
        web_add_header("X-Requested-With","XMLHttpRequest");
作者: dian106106    时间: 2013-4-4 20:43
搞定了。一直忙 没有结贴
由于是ajax的 , 加上头信息就可以了
类似这样的header:
web_add_header("is-ajax","true");
web_add_header("X-Requested-With","XMLHttpRequest");
web_add_header("Referer","http://10.181.57.212:4080/onlineHEAD/citsamexOnlineSystemLoading.action?currTime=1364262556230&companyid=publish");
web_add_header("Accept-Language","zh-cn");
web_add_header("Accept-Encoding","gzip, deflate");
作者: msnshow    时间: 2013-4-8 20:08
应该是有什么限制
作者: 利勇lmm    时间: 2013-11-7 12:44
Action.c(28): Error -26612: HTTP Status-Code=500 (Internal Server Error) for "http://172.16.16.125:8082/Account/Login?ReturnUrl=%2F"          [MsgId: MERR-26612]f
录制一个简单查询,回放的时候也报错,不知道是什么原因,求救




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2