【问题标题】:Spring DWR engine.js failing unknown errorSpring DWR engine.js 失败未知错误
【发布时间】:2020-12-23 16:07:02
【问题描述】:

我们有一个使用 Spring framework 5.1.7.RELEASEJDK 1.8DWR 3.0.2 的 Web 应用程序部署在 是 8.5。我们有一个 JSP 网页;向其用户显示一些统计信息;网页像几年前一样工作正常,突然间开始无法加载。当我们调试问题时;我们将其缩小到 dwr 的 ajax 请求;它在 engine.js 中失败,出现未知错误。我们的想法;我们将提供信息来回答这个问题。代码 sn-p 在下面,它在下面的第 3 行继续失败,即 controllerClass.someMethod 调用。 selectObj1selectObj2 是数组类型的对象。

if (document.getElementById("someCheckBox").checked) {
    //Below controllerClass is the name of JS class produced by DWR but actually it's a Java class (i.e. object used below)
    controllerClass.someMethod("Value1", selectObj1, selectObj2, 'Value2', 'Value1', function(data) {
    if (data != null) {
         hideView("viewOne",false);     //user defined function call
         fillData("viewName",data[0]);  //user defined function to fill the returned data
         valueRet1 = data[1]; 
         someConst = "X";
         displayNavCon(pageNumber);  //user defined function to control the navigation on web page
      }  else {
        alert("No Data Found!!!");  
        recordCount=0;
    }
});

【问题讨论】:

    标签: javascript java spring dwr


    【解决方案1】:

    当涉及到 DWR 时,它以 engine.js 中的错误开始失败;我认为 DWR 需要在那里进行一些改进。因为大多数时候错误是/未知的。所以在上面的例子中——我们在 DWR 的 ajax 调用中传递了一些数据,使用 selectObj1 像一个数组和 selectObj2 像一个数组,构建数据的方式多年来没有改变;然后我们注意到在 selectObj1 中传递了一个包含逗号的十进制值,我们在将数据提供给 DWR 的 ajax 调用和 Bingo 之前删除了逗号!有效。代码修复如下;

    //we are omitting the construction of other object being passed in i.e. selectObj2
    var indexBrkLp = 0;
    if (priceVal != null){
        while (priceVal.includes(",")){
            indexBrkLp++;
            priceVal = priceVal.replace(",", "")
            if (indexBrkLp > 5){
                break;
            }
        }
    }
    
    var selectObj1={
        val2:(val2 == null? "": val2),
        priceVal :(priceVal == null? "": priceVal)
    };
    
    if (document.getElementById("someCheckBox").checked) {
        //Below controllerClass is the name of JS class produced by DWR but actually it's a Java class (i.e. object used below)
        controllerClass.someMethod("Value1", selectObj1, selectObj2, 'Value2', 'Value1', function(data) {
        if (data != null) {
             hideView("viewOne",false);     //user defined function call
             fillData("viewName",data[0]);  //user defined function to fill the returned data
             valueRet1 = data[1]; 
             someConst = "X";
             displayNavCon(pageNumber); //user defined function to control the navigation on web page
          }  else {
            alert("No Data Found!!!");  
            recordCount=0;
        }
    });
    

    结论 - 如果您看到 engine.js 失败,那么它可能不仅仅是代码中的问题;它可能是它不喜欢的数据,也可能是与 DWR 相关的其他配置。

    【讨论】:

      猜你喜欢
      • 2017-11-19
      • 1970-01-01
      • 2020-01-12
      • 1970-01-01
      • 2013-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多