间歇性地在参数变量中缺少jValue

时间:2014-01-23 10:05:58

标签: java javascript

我有以下代码

String contentTP = (String)e.nextElement();
logger.info("contentTP : " + contentTP);
if (contentTP != null && contentTP.startsWith("multipart/form-data")) {
    multi = new MultipartRequest(request, 1000 * 1024 * 1024); // 1GB   
    parameters = multi.getParameters();
}
String action = (String)parameters.get("formname");
String BaseURL = (String)parameters.get("BaseURL");
logger.info("BaseURL in MailSend servlet: " + BaseURL);
String firstName = (String)parameters.get("firstName");
String lastName = (String)parameters.get("lastName");
String tid = (String)parameters.get("TID");
String from = (String)parameters.get("emailID");
String subject = (String)parameters.get("categoryvalue");
logger.info("parameter" + parameters);
logger.info("firstName : " + (String)parameters.get("firstname"));
logger.info("email : " + (String)parameters.get("emailID"));
logger.info("Subject : " + (String)parameters.get("categoryvalue"));

流程是有一个请求表单,由用户填写,然后数据输入数据库,邮件与相同的数据一起发送。我在其中遇到一个奇怪的问题,有些像参数对象中的主题有时会丢失。以下是参数哈希表条目的成功方案和故障方案的日志条目。 成功案例

 2014-01-21 02:11:26,335 INFO  servlets.MailSend parameter{m_technicaldetails=testing..., tsaa12=, tsaa11=, tsaa10=, actiondate5=, ntid=T-ID/S-ID:, actiondate4=, actiondate3=, actiondate2=, actiondate1=, tsvalue=, rsemail=E-mail:, message=testing ....., akamaiq3value=, da2=, da1=, vq3value=, emailID=SR1215@chrysler.com, notedate5=, status=, pnumber2=4324234, notedate4=, ftpdetailstext=FTP Details for the Assets, pnumber1=342, notedate3=, da3value=, notedate2=, vq5date=, notedate1=, vq7value=, TID=t3014sr, techq3value=, user1=User1:, formname=requestform, categoryvalue=Mobile, m_mobile=Support, itemtonotefull=Request Details - Additional Items to note in the monthly KPM Report, ftpdetails=, sitechangefull=Site Changes(Navigation, Folder Structure, Addition/Removal of Content), teamsitevalue=, category=Mobile, rsuser1=User1:, dnsvalue=, birthday=Birth date(MM-DD):, vq2other=, m_mobileq4value=, othervalue=, akamaiq6=, change5=, change4=, change3=, change2=, tsq7=Provide the estimated date when you are planning to start working with the templates and launching your site, change1=, tsq3=Jeep:, tsq2=Dodge:, tsq1=Chrysler:, dateofchange=Date of Change, rslastname=Last Name:, akamaiq4value=, vpnvalue=, rtvalue=, da4value=, itemtonote=Item to Note, rsaa9=, rsaa8=, rsaa7=, rsaa6=, rsaa5=, rsaa4=, vq8value=, rsaa3=, rsaa2=, rsaa1=, priority=High, m_mobileq4=, m_mobileq3=Any other technical issues, nsfirstname=First Name:, tspnumber=Phone Num:, m_mobileq1value=, rsaa12=, rsaa11=, rsaa10=, ts2=Specify the user names that require access to manage content in TeamSite:, ts1=Domain name/URL to be used for each Brand.    Note: URLs must be already purchased, rs2=Specify the user names that require access to manage content in TeamSite:, firstName=Sanket, akamaiq1value=, lastname=Last Name:, vq1value=, tsa3=, tsa2=, country=India, tsa1=, vq5value=, date=Date, lastName=Roy, techq4=Is your site on Akamai?, techq2=Is your site under Chrysler infrastructure? This means DNS (Domain Name Server) is controlled by Chrysler., note5=, note4=, note3=, note2=, note1=, vp4=Have you updated the Anti Virus?  (Definitions must be less than 14 days old), vp3=Were changes made to the network you are using in the last few days?, actiontakenfull=Actions taken to increase traffic, tsa13=, vp2=Current Operation System, m_mobileq2value=, vp1=Current remote access system to connect to Chrysler Network, rsfirstname=First Name:, vq10value=, priorityvalue=High, akamaioptionvalue=, templatevalue=, assetsvalue=, taother=, rspnumber=Phone Num:, changedate5=, dq4=When you try to deploy content in UAT/Live environment from Team Site, are you receiving the error message 'Promotion Block Check Failed?', changedate4=, dq3=Are you trying to use the refresh workarea to conduct deployments?, changedate3=, dq2=When was the last time you deployed content and it failed, changedate2=, action5=, dq1=Provide the step where you are facing those issues, changedate1=, action4=, action3=, action2=, action1=, tsaa9=, tsaa8=, tsaa7=, sitechange=Site Change, tsaa6=, tsaa5=, tsaa4=, tsaa3=, tsaa2=, vq6date=, tsaa1=, vq2value=, uploadfiles=[{uploadedfilename=Mobile_Category_New_Enhancement.docx, filesize=1043741, partInput=java.io.ByteArrayInputStream@21c321c3}], BaseURL=, vq6value=, m_mobileoptionvalue=Support, cclist=sanket.roy@tcs.com, actiontaken=Action Taken, rstid=T-ID/S-ID:, rcvalue=, email=E-mail:, m_mobileq3value=Unable to view content on TEST site|Facing problem in deleting existing files in the workarea|Help locking or unlocking files within a workarea|Not able to see changes in test environment after submitting files|Any other technical issues, deploymentvalue=, trainingvalue=, rsbirthday=Birth date(MM-DD):}

失败情景

 parameter{user1=User1:, pnumber2=3123123, cclist=sanket.roy@tcs.com, pnumber1=3123, attachement=; filename="Mobile_Category_New_Enhancement.docx"
Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document

PK, tsaa9=, tsaa8=, tsaa7=, tsaa6=, tsaa5=, tsaa4=, tsaa3=, tsaa2=, tsaa1=, birthday=Birth date(MM-DD):, TID=t3014sr, email=E-mail:, m_mobile=Support, vq10value=, date=Date, dateofchange=Date of Change, change5=, change4=, change3=, change2=, dq4=When you try to deploy content in UAT/Live environment from Team Site, are you receiving the error message 'Promotion Block Check Failed?', change1=, dq3=Are you trying to use the refresh workarea to conduct deployments?, dq2=When was the last time you deployed content and it failed, firstName=Sanket, dq1=Provide the step where you are facing those issues, taother=, rsbirthday=Birth date(MM-DD):, sitechangefull=Site Changes(Navigation, Folder Structure, Addition/Removal of Content), rstid=T-ID/S-ID:, message=testing , akamaiq6=, status=, rsaa12=, action5=, nsfirstname=First Name:, rsaa11=, action4=, rsaa10=, action3=, action2=, tsa3=, action1=, tsa2=, tsa1=, ts2=Specify the user names that require access to manage content in TeamSite:, ts1=Domain name/URL to be used for each Brand.    Note: URLs must be already purchased, rsaa9=, rsaa8=, rsaa7=, rsaa6=, rsaa5=, rsaa4=, rsaa3=, rsaa2=, rsaa1=, itemtonotefull=Request Details - Additional Items to note in the monthly KPM Report, rs2=Specify the user names that require access to manage content in TeamSite:, ftpdetailstext=FTP Details for the Assets, actiontakenfull=Actions taken to increase traffic, vq2other=, vq6date=, priority=Medium, changedate5=, changedate4=, changedate3=, changedate2=, changedate1=, rsuser1=User1:, ntid=T-ID/S-ID:, country=India, tsaa12=, tsaa11=, tsaa10=, m_technicaldetails=testing, actiontaken=Action Taken, ftpdetails=, lastname=Last Name:, vq5date=, itemtonote=Item to Note, rsemail=E-mail:, actiondate5=, techq4=Is your site on Akamai?, actiondate4=, actiondate3=, techq2=Is your site under Chrysler infrastructure? This means DNS (Domain Name Server) is controlled by Chrysler., actiondate2=, tsq7=Provide the estimated date when you are planning to start working with the templates and launching your site, actiondate1=, m_mobileq4=, m_mobileq3=Any other technical issues, sitechange=Site Change, tsq3=Jeep:, emailID=SR1215@chrysler.com, tsq2=Dodge:, tsq1=Chrysler:, notedate5=, notedate4=, notedate3=, vp4=Have you updated the Anti Virus?  (Definitions must be less than 14 days old), notedate2=, vp3=Were changes made to the network you are using in the last few days?, notedate1=, vp2=Current Operation System, da2=, note5=, vp1=Current remote access system to connect to Chrysler Network, da1=, note4=, note3=, note2=, note1=, tsa13=, others=Others, lastName=Roy, rslastname=Last Name:, rsfirstname=First Name:, tspnumber=Phone Num:, rspnumber=Phone Num:, category=Mobile}

您可以看到第二种情况下不存在categoryvalue字段。使用js输入参数变量中的值,并使用隐藏变量从jsp传递给java文件。下面是来自js的函数getCategory。

document.form1.categoryvalue.value = document.form1.category.value;
//document.form1.action="Category"; 
//document.form1.submit();
alert(document.form1.categoryvalue.value);
if (navigator.appName.indexOf("Microsoft") > -1) {
    var canSee = 'block'
} else {
    var canSee = 'table-row';
}

if (document.form1.categoryvalue.value == "Assets") {
    //anu 14/6
    enableuser2();
    enablersuser2();
    enabletextbox();
    get_vq2_value();
    //anu2
    get_vq5_value();
    get_vq6_value();
    //anu2  
    //anuend 14/6   
    clear_template();
    clear_training();
    clear_technical();
    clear_teamsite();
    /*/anu
     clear_newsettings();
     //anuend*/
    clear_newsettingts();
    clear_newsettingrc();
    clear_newsettingvp();
    clear_newsettingother();
    clear_kpmreport();
    clear_markettomarket();
    clear_mobile();
    //document.form1.attachement.value="";
    clearFileInputField();
    document.form1.message.value = "";
    document.getElementById('assesttr').style.display = canSee;
    document.getElementById('trainingtr').style.display = 'none';
    document.getElementById('templatetr').style.display = 'none';
    document.getElementById('teamsitetr').style.display = 'none';
    document.getElementById('newsettingstr').style.display = 'none';
    document.getElementById('technicaltr').style.display = 'none';
    document.getElementById('kpmreporttr').style.display = 'none';
    document.getElementById('markettomarkettr').style.display = 'none';
    document.getElementById('prioritytr').style.display = canSee;
    document.getElementById('attachmenttr').style.display = canSee;
    document.getElementById('m_mobiletr').style.display = 'none';
} else if (document.form1.categoryvalue.value == "Templates") {
    //anu 14/6
    enableuser2();
    enablersuser2();
    enabletextbox();
    get_vq2_value();
    //anu2
    get_vq5_value();
    get_vq6_value();
    //anu2  

    //anuend 14/6   
    clear_assets();
    clear_training();
    clear_technical();
    clear_teamsite();
    /*/anu
     clear_newsettings();
     //anuend*/
    clear_newsettingts();
    clear_newsettingrc();
    clear_newsettingvp();
    clear_newsettingother();
    clear_kpmreport();
    clear_markettomarket();
    clear_mobile();
    //document.form1.attachement.value="";
    clearFileInputField();
    document.form1.message.value = "";
    document.getElementById('assesttr').style.display = 'none';
    document.getElementById('trainingtr').style.display = 'none';
    document.getElementById('templatetr').style.display = canSee;
    document.getElementById('teamsitetr').style.display = 'none';
    document.getElementById('newsettingstr').style.display = 'none';
    document.getElementById('technicaltr').style.display = 'none';
    document.getElementById('kpmreporttr').style.display = 'none';
    document.getElementById('markettomarkettr').style.display = 'none';
    document.getElementById('m_mobiletr').style.display = 'none';
    document.getElementById('prioritytr').style.display = canSee;
    document.getElementById('attachmenttr').style.display = canSee;
} else if (document.form1.categoryvalue.value == "Training") {
    //anu 14/6
    enableuser2();
    enablersuser2();
    enabletextbox();
    get_vq2_value();
    //anu2
    get_vq5_value();
    get_vq6_value();
    //anu2  

    //anuend 14/6   

    clear_template();
    clear_assets();
    clear_technical();
    clear_teamsite();
    /*/anu
     clear_newsettings();
     //anuend*/
    clear_newsettingts();
    clear_newsettingrc();
    clear_newsettingvp();
    clear_newsettingother();
    clear_kpmreport();
    clear_markettomarket();
    clear_mobile();
    document.form1.attachement.value = "";
    clearFileInputField();
    document.form1.message.value = "";
    document.getElementById('assesttr').style.display = 'none';
    document.getElementById('trainingtr').style.display = canSee;
    document.getElementById('templatetr').style.display = 'none';
    document.getElementById('teamsitetr').style.display = 'none';
    document.getElementById('newsettingstr').style.display = 'none';
    document.getElementById('technicaltr').style.display = 'none';
    document.getElementById('kpmreporttr').style.display = 'none';
    document.getElementById('markettomarkettr').style.display = 'none';
    document.getElementById('m_mobiletr').style.display = 'none';
    document.getElementById('prioritytr').style.display = canSee;
    document.getElementById('attachmenttr').style.display = canSee;
} else if (document.form1.categoryvalue.value == "Technical") {
    //anu 14/6
    enableuser2();
    enablersuser2();
    enabletextbox();
    get_vq2_value();
    //anu2
    get_vq5_value();
    get_vq6_value();
    //anu2  

    //anuend 14/6   

    clear_template();
    clear_assets();
    clear_training();
    clear_teamsite();
    /*/anu
     clear_newsettings();
     //anuend*/
    clear_newsettingts();
    clear_newsettingrc();
    clear_newsettingvp();
    clear_newsettingother();
    clear_kpmreport();
    clear_markettomarket();
    clear_mobile();
    //document.form1.attachement.value="";
    clearFileInputField();
    document.form1.message.value = "";
    document.getElementById('assesttr').style.display = 'none';
    document.getElementById('trainingtr').style.display = 'none';
    document.getElementById('templatetr').style.display = 'none';
    document.getElementById('teamsitetr').style.display = 'none';
    document.getElementById('newsettingstr').style.display = 'none';
    document.getElementById('technicaltr').style.display = canSee;
    document.getElementById('kpmreporttr').style.display = 'none';
    document.getElementById('markettomarkettr').style.display = 'none';
    document.getElementById('m_mobiletr').style.display = 'none';
    document.getElementById('prioritytr').style.display = canSee;
    document.getElementById('attachmenttr').style.display = canSee;
} else if (document.form1.categoryvalue.value == "Teamsite") {
    //anu 14/6
    enableuser2();
    enablersuser2();
    enabletextbox();
    get_vq2_value();
    //anu2
    get_vq5_value();
    get_vq6_value();
    //anu2  

    //anuend 14/6   

    clear_template();
    clear_assets();
    clear_training();
    clear_technical();
    /*/anu
     clear_newsettings();
     //anuend*/
    clear_newsettingts();
    clear_newsettingrc();
    clear_newsettingvp();
    clear_newsettingother();
    clear_kpmreport();
    clear_markettomarket();
    clear_mobile();
    //document.form1.attachement.value="";
    clearFileInputField();
    document.form1.message.value = "";
    document.getElementById('assesttr').style.display = 'none';
    document.getElementById('trainingtr').style.display = 'none';
    document.getElementById('templatetr').style.display = 'none';
    document.getElementById('teamsitetr').style.display = canSee;
    document.getElementById('newsettingstr').style.display = 'none';
    document.getElementById('technicaltr').style.display = 'none';
    document.getElementById('kpmreporttr').style.display = 'none';
    document.getElementById('markettomarkettr').style.display = 'none';
    document.getElementById('m_mobiletr').style.display = 'none';
    document.getElementById('prioritytr').style.display = canSee;
    document.getElementById('attachmenttr').style.display = canSee;
} else if (document.form1.categoryvalue.value == "NewSettings") {
    //anu 14/6
    enableuser2();
    enablersuser2();
    enabletextbox();
    get_vq2_value();
    //anu2
    get_vq5_value();
    get_vq6_value();
    //anu2  

    //anuend 14/6   

    clear_template();
    clear_assets();
    clear_training();
    clear_technical();
    clear_teamsite();
    /*/anu
     clear_newsettings();
     //anuend*/
    clear_kpmreport();
    clear_markettomarket();
    clear_mobile();
    //document.form1.attachement.value="";
    clearFileInputField();
    document.form1.message.value = "";
    document.getElementById('assesttr').style.display = 'none';
    document.getElementById('trainingtr').style.display = 'none';
    document.getElementById('templatetr').style.display = 'none';
    document.getElementById('teamsitetr').style.display = 'none';
    document.getElementById('newsettingstr').style.display = canSee;
    document.getElementById('technicaltr').style.display = 'none';
    document.getElementById('kpmreporttr').style.display = 'none';
    document.getElementById('markettomarkettr').style.display = 'none';
    document.getElementById('m_mobiletr').style.display = 'none';
    document.getElementById('prioritytr').style.display = canSee;
    document.getElementById('attachmenttr').style.display = canSee;
} else if (document.form1.categoryvalue.value == "KPM Request Form") {
    //anu 14/6
    enableuser2();
    enablersuser2();
    enabletextbox();
    get_vq2_value();
    //anu2
    get_vq5_value();
    get_vq6_value();
    //anu2  

    //anuend 14/6   

    clear_template();
    clear_assets();
    clear_training();
    clear_technical();
    clear_teamsite();
    clear_newsettingts();
    clear_newsettingrc();
    clear_newsettingvp();
    clear_newsettingother();
    clear_markettomarket();
    clear_mobile();
    //document.form1.attachement.value="";
    clearFileInputField();
    document.form1.message.value = "";
    document.getElementById('assesttr').style.display = 'none';
    document.getElementById('trainingtr').style.display = 'none';
    document.getElementById('templatetr').style.display = 'none';
    document.getElementById('teamsitetr').style.display = 'none';
    document.getElementById('newsettingstr').style.display = 'none';
    document.getElementById('technicaltr').style.display = 'none';
    document.getElementById('kpmreporttr').style.display = canSee;
    document.getElementById('markettomarkettr').style.display = 'none';
    document.getElementById('m_mobiletr').style.display = 'none';
    document.getElementById('prioritytr').style.display = 'none';
    document.getElementById('attachmenttr').style.display = 'none';
} else if (document.form1.categoryvalue.value == "Market to Market") {
    //anu 14/6
    enableuser2();
    enablersuser2();
    enabletextbox();
    get_vq2_value();
    //anu2
    get_vq5_value();
    get_vq6_value();
    //anu2  

    //anuend 14/6   

    clear_template();
    clear_assets();
    clear_training();
    clear_technical();
    clear_teamsite();
    clear_newsettingts();
    clear_newsettingrc();
    clear_newsettingvp();
    clear_newsettingother();
    clear_kpmreport();
    clear_mobile();
    //document.form1.attachement.value="";
    clearFileInputField();
    document.form1.message.value = "";
    document.getElementById('assesttr').style.display = 'none';
    document.getElementById('trainingtr').style.display = 'none';
    document.getElementById('templatetr').style.display = 'none';
    document.getElementById('teamsitetr').style.display = 'none';
    document.getElementById('newsettingstr').style.display = 'none';
    document.getElementById('technicaltr').style.display = 'none';
    document.getElementById('kpmreporttr').style.display = 'none';
    document.getElementById('markettomarkettr').style.display = canSee;
    document.getElementById('m_mobiletr').style.display = 'none';
    document.getElementById('prioritytr').style.display = 'none';
    document.getElementById('attachmenttr').style.display = 'none';
} else if (document.form1.categoryvalue.value == "Mobile") {
    //anu 14/6
    enableuser2();
    enablersuser2();
    enabletextbox();
    get_vq2_value();
    //anu2
    get_vq5_value();
    get_vq6_value();
    //anu2  

    //anuend 14/6   

    clear_template();
    clear_assets();
    clear_training();
    clear_technical();
    clear_teamsite();
    clear_newsettingts();
    clear_newsettingrc();
    clear_newsettingvp();
    clear_newsettingother();

    /*/anu
     clear_newsettings();
     //anuend*/
    clear_kpmreport();
    clear_markettomarket();
    //document.form1.attachement.value="";
    clearFileInputField();
    document.form1.message.value = "";
    document.getElementById('assesttr').style.display = 'none';
    document.getElementById('trainingtr').style.display = 'none';
    document.getElementById('templatetr').style.display = 'none';
    document.getElementById('teamsitetr').style.display = 'none';
    document.getElementById('newsettingstr').style.display = 'none';
    document.getElementById('technicaltr').style.display = 'none';
    document.getElementById('kpmreporttr').style.display = 'none';
    document.getElementById('markettomarkettr').style.display = 'none';
    document.getElementById('m_mobiletr').style.display = canSee;
    document.getElementById('prioritytr').style.display = canSee;
    document.getElementById('attachmenttr').style.display = canSee;
} else {
    //anu 14/6
    enableuser2();
    enablersuser2();
    enabletextbox();
    get_vq2_value();
    //anu2
    get_vq5_value();
    get_vq6_value();
    //anu2  

    //anuend 14/6   

    clear_template();
    clear_assets();
    clear_training();
    clear_technical();
    clear_teamsite();
    clear_kpmreport();
    clear_markettomarket();
    //document.form1.attachement.value="";
    clearFileInputField();
    document.form1.message.value = "";
    document.getElementById('assesttr').style.display = 'none';
    document.getElementById('trainingtr').style.display = 'none';
    document.getElementById('templatetr').style.display = 'none';
    document.getElementById('teamsitetr').style.display = 'none';
    document.getElementById('newsettingstr').style.display = 'none';
    document.getElementById('technicaltr').style.display = 'none';
    document.getElementById('kpmreporttr').style.display = 'none';
    document.getElementById('markettomarkettr').style.display = 'none';
    document.getElementById('m_mobiletr').style.display = 'none';
    document.getElementById('prioritytr').style.display = canSee;
    document.getElementById('attachmenttr').style.display = canSee;

我在开头和结尾都设置了警报,确保将变量传递给java文件。但是在java文件中它会间歇性地出现 如果您有任何疑问,请告诉我。告知是否需要包含任何进一步的信息。提前致谢

2 个答案:

答案 0 :(得分:0)

您提到检查请求是否正确填充了浏览器。如果服务器无法读取它们,则可能是多部分请求解析库中的错误。

我认为您正在使用O'Reilly MultiPartRequest库来解析请求,该请求已知有一些微妙的错误并且多年未维护。

如果您使用的是Servlet 3.0或更高版本的容器,请使用它的原生API,如果在之前的servlet版本中,则使用Apache Commons File Upload

另请参阅此answer了解更多详情。

答案 1 :(得分:0)

问题出在处理登录注销的网站上。表单值存储在那里直到验证完成。在验证过程后返回值时,它无法返回所有值。