0

这是我第一次使用 struts (1.2)

在我的 jsp 页面中,我有一个表单,用户需要提供 IP 地址和文件名,一旦他提交页面,这些数据就会被传递到一个 Web 服务,该服务连接到设备并收集给定文件名中的数据。

现在的问题是,当我在一段时间后使用按钮提交页面时(在 IExplorer 上大约 1-2 分钟,在 Firefox 上大约 4-5 分钟),我的应用程序页面消失了;我在我的应用程序日志或 weblogic 日志中看不到任何错误。

这是一个同步请求,用户必须在 UI/网页上等待最终结果显示,这大约需要 30-40 分钟 以下是 struts-config.xml 的片段

    <action 
        path="/Collect"
        type="com.aqura.project.struts.fileMgt.CollectResultAction"
        validate="false">
          <forward name="Collect" 
                   path="/jsp/collect.jsp"/>
    </action> 

    <action
        path="/CollectDisplay"
        type="com.aqura.project.struts.fileMgt.CollectResultAction"
        name="collectForm"
        scope="request"
        validate="true"
        input="/jsp/collect.jsp">
          <exception
              key="exception.prodconn.error"
              type="com.aqura.project.service.prodConnect.ProductConnectException"
              path="/jsp/ctError.jsp" />
          <forward name="FileTransferDisplay"
                   path="/jsp/fileTransferDisplay.jsp" 
                   redirect="true"/>
          <forward name="FileResolve" 
                   path="/FileResolve.do" 
                   redirect="true"/>
    </action>

collect.jsp 是此操作的 jsp 文件,用户必须在此页面上等待,直到我们成功获取文件,一旦收到文件,我们将检查它是否存在并需要重命名,否则它将存储在用户 a/c 中。

逻辑写在 CollectResultAction.java 上,我们在其中映射了动作。

在过去的一周里,我一直在努力解决这个问题,但无法做出任何事情。

我试图在 JSP 上使用一些日志,<%c:out /> 但这也没有用。我不确定如何调试此问题。任何帮助,将不胜感激。

另一个更新:我在 .jsp 文件中添加了html 刷新标签,现在 FireFox 页面上的这个更改一直保留到显示最终结果,但在 IE 上我仍然看到这个问题,我已经尝试使用 IE6 和 IE8。

4

2 回答 2

0

感谢 JB Nizet,感谢您的帮助。我尝试通过每分钟添加刷新来解决 FireFox 上的问题并开始工作,但是,我的应用程序对 IE 有很多依赖,我仍然在 IE 上看到同样的问题。

在这个问题上花了很多时间之后,我终于找到了问题的解决方案,问题出在 IE 上,你需要将 IE 重置回出厂设置,这是如何做到的

在菜单栏中(如果您的菜单栏丢失,请右键单击 iE7 上主页图标附近的工具栏)单击 Internet 工具,高级选项.....然后在底部您将看到 RESET INTERNET EXPLORER 。继续按下那个按钮,你的痛苦(希望)就会结束。此后,我的 Internet Explorer 开始加载所有页面。

我找到了这个解决方案@ http://www.techsupportforum.com/forums/f56/internet-explorer-not-loading-pages-but-firefox-is-69617.html

感谢所有的帮助。

于 2012-01-13T10:44:56.533 回答
0

您可能遇到了一些浏览器超时。在 JSP 中进行调试没有意义,因为您的操作会在 30 或 40 分钟后转发到 JSP。这种方式对用户不友好,并且会使浏览器和服务器保持开放连接的时间过长。这可能是您观察到这种行为的原因。

您应该在后台启动长流程,并立即发送响应,告诉用户工作正在进行中。让此页面每分钟刷新一次,或每分钟触发一次 ajax 请求,以了解进程是否已结束。

于 2011-12-28T08:24:07.840 回答