代码之家  ›  专栏  ›  技术社区  ›  upshake

GWT中的String.indexOf(String s)在部署到tomcat服务器时失败

  •  0
  • upshake  · 技术社区  · 14 年前

    我在tomcat服务器上运行GWT2应用程序时,似乎遇到了String.indexOf(String s)/String.lastIndexOf(String s)的问题。

    以下代码位于演示者(客户端)中。当通过GWT Eclipse插件运行时,它工作得很好,但是当应用程序部署到tomcat6服务器时,它会返回“”。

    int start = message.indexOf("<pre>")+5;
    int end = message.lastIndexOf("</pre>");  
    return message.substring(start, end);
    

    3 回复  |  直到 14 年前
        1
  •  1
  •   Gaurav Saxena    14 年前

    我不认为web服务器的改变会影响客户端代码,因为GWT代码是被翻译成javascript的。我能想到的一个场景是,你正在填充“pre”dyanmical,在设置之前,你正在尝试获取它的内容。 由于托管模式运行速度较慢,这将起作用,但在将代码转换为javascript并直接运行到浏览器中时可能会失败

    如果上述情况属实,您可以尝试在计划在几毫秒后运行的计时器中运行“substring”代码。

    DOM.getInnerHTML DOM.getInnerText

        2
  •  1
  •   z00bs    14 年前

    从GWT站点:

    你的大部分时间 开发时间运行 意思是你在和 您的GWT应用程序没有

    意思是某些行为可以(会?)从托管模式切换到生产模式时更改。尤其是在处理RegEx时,您可能会遇到分歧。这里有一个例子: http://code.google.com/p/google-web-toolkit/issues/detail?id=3071

        3
  •  1
  •   upshake    14 年前

    结果发现问题根本不是字符串。

    因为“消息”是:

    SubmitCompleteEvent event;
    message = event.getResults();
    

    消息取决于服务器的类型:Tomcat或Jetty(通过Eclipse插件) Tomcat不使用 <pre> 它的servlet响应中的标记。

    我很抱歉没早点告诉你。

    推荐文章