【问题标题】:Long Java processing causes error in Flex长时间的 Java 处理导致 Flex 中的错误
【发布时间】:2013-06-21 14:20:45
【问题描述】:

我有一个 Web 应用程序 (Java + Flex),我在其中上传了一个包含大量行的 csv 文件,然后对其进行处理并插入到数据库中。完成处理需要一个多小时,但 Flex 给了我这个错误:

[RPC Fault faultString="error" faultCode="Channel.Call.Failed" faultDetail="NetConnection.Call.Failed: HTTP: Failed"]
at mx.rpc::AbstractInvoker/http://www.adobe.com/2006/flex/mx/internal::faultHandler()[C:\autobuild\3.2.0\frameworks\projects\rpc\src\mx\rpc\AbstractInvoker.as:220]
at mx.rpc::Responder/fault()[C:\autobuild\3.2.0\frameworks\projects\rpc\src\mx\rpc\Responder.as:53]
at mx.rpc::AsyncRequest/fault()[C:\autobuild\3.2.0\frameworks\projects\rpc\src\mx\rpc\AsyncRequest.as:103]
at NetConnectionMessageResponder/channelFaultHandler()[C:\autobuild\3.2.0\frameworks\projects\rpc\src\mx\messaging\channels\NetConnectionChannel.as:669]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.messaging.channels::AMFChannel/statusHandler()[C:\autobuild\3.2.0\frameworks\projects\rpc\src\mx\messaging\channels\AMFChannel.as:365]

你们能帮帮我吗?显示大约需要 1 小时,文件在服务器上继续处理。

谢谢!

【问题讨论】:

  • Flex 将在您的服务器返回超时响应后立即给您该错误(应该在几秒钟后)。我认为您应该能够简单地收听故障事件并吞下它。 (不过有点好奇:你到底在做什么,需要一个小时来处理?根据 CSV 数据渲染 3D 电影?)
  • 这听起来像是应该启动请求(并返回它已启动)的情况,并且应用程序会定期轮询状态;或某种形式的消息传递系统(如 WebSockets、Comet 或 GraniteDS 的 Gravity),供服务器在处理完成时将消息发送回客户端。

标签: java apache-flex jakarta-ee adobe amf


【解决方案1】:

您需要使用基于服务器的 Java 远程处理和 Web 消息传递技术(如 BlazeDS 或 GraniteDS)使其工作,这将帮助您连接到后端分布式数据并将数据推送到 Adob​​e Flex。

有关 GraniteDS 的更多信息,请访问:

http://www.graniteds.org/confluence/pages/viewpage.action?pageId=229378

对于 BlazeDS,请点击链接:

http://www.adobe.com/aboutadobe/pressroom/pressreleases/200712/121307BlazeDS.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-17
    • 2012-01-02
    • 2012-03-01
    • 1970-01-01
    • 2017-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多