51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 9328|回复: 21
打印 上一主题 下一主题

[求助] HTTP Status-Code=500 (Internal Server Error)

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2013-3-21 15:51:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用loadrunner 录制脚本回放的时候报错:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2013-3-21 15:53:46 | 只看该作者
然后在后台taocat 和用badboy录制在回放了一下,都是同样的错误:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2013-3-21 15:56:58 | 只看该作者
代码里相应的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>
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2013-3-21 15:58:37 | 只看该作者
本帖最后由 dian106106 于 2013-3-21 16:09 编辑

....
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2013-3-21 15:59:37 | 只看该作者
本帖最后由 dian106106 于 2013-3-21 16:09 编辑

....
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2013-3-21 16:06:47 | 只看该作者
本帖最后由 dian106106 于 2013-3-21 16:10 编辑

.....
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2013-3-21 16:06:56 | 只看该作者
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"));
                })
        })
}
回复 支持 反对

使用道具 举报

  • TA的每日心情
    无聊
    14 小时前
  • 签到天数: 1051 天

    连续签到: 1 天

    [LV.10]测试总司令

    8#
    发表于 2013-3-21 16:08:49 | 只看该作者
    帮顶下~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
     楼主| 发表于 2013-3-21 16:28:46 | 只看该作者
    真心谢谢. 版主帮忙看看几眼吧
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
     楼主| 发表于 2013-3-21 16:36:52 | 只看该作者
    自己的想法:   因为在这个重复预订之前 有个ajaxPolicyControl.action, 这个是异步加载的. 我猜想是不是请求顺序问题导致的. 但是tomcat 后台 没有报错,难道tomcat 没有检测到, loadrunner 可以检测??
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
     楼主| 发表于 2013-3-21 16:53:30 | 只看该作者
    忘了贴前台的东西: 就是预订按钮 然后 弹出那个alert:
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
     楼主| 发表于 2013-3-21 16:55:59 | 只看该作者
    截图

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
    发表于 2013-3-22 15:32:23 | 只看该作者
    你确定你提交的数据 没有问题?  建议先检查下
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2020-12-8 11:20
  • 签到天数: 605 天

    连续签到: 1 天

    [LV.9]测试副司令

    14#
    发表于 2013-3-22 16:27:36 | 只看该作者
    服务down了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
     楼主| 发表于 2013-3-25 10:22:02 | 只看该作者
    @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.后来就改成这样了.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
     楼主| 发表于 2013-3-25 10:23:04 | 只看该作者
    在老的基础上 加了
    logger.error("====================is ajax!!" + invocation.getAction().getClass());

    logger.error("====================not ajax!!" + invocation.getAction().getClass());
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-10-4 10:34
  • 签到天数: 1208 天

    连续签到: 1 天

    [LV.10]测试总司令

    17#
    发表于 2013-3-27 11:33:14 | 只看该作者
    前天有一个这个错 开发说有个页面没编译成功
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    18#
    发表于 2013-3-27 12:02:14 | 只看该作者
    回复 15# dian106106


        我录制带有js的页面,,,也出现这个错误
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19#
     楼主| 发表于 2013-4-4 20:33:50 | 只看该作者
    搞定了。一直忙,没有及时回帖。
    由于是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");
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    20#
     楼主| 发表于 2013-4-4 20:43:15 | 只看该作者
    搞定了。一直忙 没有结贴
    由于是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");
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-26 23:32 , Processed in 0.091278 second(s), 29 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表