【问题标题】:Tomcat request time outTomcat 请求超时
【发布时间】:2013-12-10 14:08:01
【问题描述】:

我的 GET 请求中的 0 个在服务器中执行需要 5 分钟, 到这个时候,我的 UI 给了我请求超时,我该如何覆盖它。

PS:我使用的是 tomcat + Ext.js。
我稍后会将此操作设为异步,这是一个即时请求。

非常感谢

【问题讨论】:

  • 我在 server.xml 中更改了连接超时,但这似乎没有帮助。
  • 抱歉,我不能告诉你如何覆盖超时(没有立即帮助),我正在对你在做什么做一些假设;但建议您对正在获取的资源进行单元测试。避免通过 tomcat 进行测试,直到您使该操作异步。看vogella.com/articles/JUnit/article.html祝你好运
  • 现在这几乎是在 5 分钟后发生的,知道为什么这次。

标签: java ajax jakarta-ee tomcat extjs


【解决方案1】:

您是否使用 Ajax 请求来检索数据?如果是这样,您可以覆盖默认的 30 秒超时期限。 Ext.Ajax.timeout = yourValueHere;sencha docs 中提供了有关此的更多信息。

【讨论】:

  • 不好意思忘了说,我也做过。它没有帮助我。不过还是谢谢。
  • @user35690 您是否偶然使用了 JsonP?如果是这样,则需要覆盖不同的属性。
  • 您使用的是什么浏览器?如果您使用的是 IE,可能需要注意:stackoverflow.com/questions/13804266/… 我已经将我的做法放在了答案中。
  • 感谢上帝,他们已经解决了 IE 5.X 及更高版本中的问题 :)
【解决方案2】:

超时的不是你的服务器,而是你的 AjaxRequest(默认为 3 分钟,具体取决于浏览器)。 覆盖请求的超时配置:

每个请求(因此您可以只配置那些您认为需要更多时间的请求):

如果您的请求来自商店:

Ext.define("RCV2.store.ReporteConcentradoStore", {
    extend: "Ext.data.Store",
    model: "RCV2.model.RegistroReporteConcentrado",
    proxy: {
        timeout: 900000,    // <<<<<----- this is the important part
        type: "ajax",
        url: "../obtenerReporteConcentradoV2Servlet",
        reader: {
            type: "json",
            root: "registros"
        }
    },
    autoLoad: false});

或者在调用load方法的时候:

store.load({
    timeout:900000,   // <<<<<----- this is the important part
    params: {
    "desde":desde,
    "hasta": hasta
    }

如果你在做一个独立的AjaxRequest:

Ext.Ajax.request(
            {
                url: '../someServletOrWhatever',
                method: 'POST',
                timeout: 30000      // <<<<<----- this is the important part
            }

【讨论】:

    猜你喜欢
    • 2015-04-25
    • 1970-01-01
    • 2011-02-26
    • 1970-01-01
    • 1970-01-01
    • 2016-05-27
    • 2020-05-31
    • 2012-03-31
    • 2018-08-17
    相关资源
    最近更新 更多