使用AMF协议从Flex应用程序调用Java服务器时出现随机Channel.Connect.Failed错误

时间:2014-03-18 15:55:27

标签: java flex actionscript flash-builder amf

我在互联网上发布了一个项目,每天都有成千上万的用户使用。基本上,我在AmazonAWS中使用服务器部件,在Tomcat中运行的Java 6中编译服务器部件。我正在使用AMF发布服务,我的客户端使用Flash Builder构建在Flex 4.6中,以生成连接到AMF服务的类。我用来连接服务的代码是:

    public var cpcService:RemotingServicesImpl;

    private function callService():void
    {
        FlexGlobals.topLevelApplication.callingService=true;

        encryptedSession=ResourcesUtil.buildSessionId(globalSettings.sessionId, globalSettings);
        var responder:Responder=new Responder(gameStateLoaded, gameStateFailed);
        var token:AsyncToken=cpcService.getGameState(encryptedSession, taskKey);
        token.addResponder(responder);
    }

    private function gameStateFailed(ev:FaultEvent=null):void
    {
        DisplayUtil.trackErrorInfoEvent("FATAL - FatalError", "getGameState-" + FlexGlobals.topLevelApplication.mainView.currentState, ev, encryptedSession);
    }

    private function gameStateLoaded(ev:Object):void
    {
        // my fantastic code when everything is ok
    }

通常情况下,一切正常,我的应用程序正在运行,但有些调用(如每500个1)无法正常工作,我知道,因为在trackErrorInfoEvent函数中我正在Google Analytics中注册一个事件,所以我知道这个是随机发生的。这是错误:

faultCode = "Client.Error.MessageSend"
faultDetail = "Channel.Connect.Failed error NetConnection.Call.Failed: HTTP: Failed: url: 'https://appcog.cognifit.com/messagebroker/amf'"
faultString = "Send failed"
rootCause = (null)

当然,网址是正确的,并且一直有效。

我在some blogs中看到添加此行:

    <add-no-cache-headers>false</add-no-cache-headers>

问题已得到修复,但我的配置文件中仍有该行,但仍在发生。

我已检查过我的服务器日志,并且我没有任何时间的服务中断记录。

我真的很感激任何帮助,提前谢谢!

0 个答案:

没有答案