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;'> </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,tr
tr},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