Когда происходит сгибание, возникает ошибка NetConnection.Call.Badversion

Я использую Flex в качестве клиента и Java в качестве сервера. Использование WebOrb на удаленном хосте. Иногда я получаю эту ошибку.

faultCode: Client.Error.MessageSend
faultString: "Ошибка отправки"
faultDetail:'Channel.Connect.Failed Ошибка NetConnection.Call.BadVersion::
URL: 'http://foo.com:5480/bar/weborb.wo''

Я не знаю, почему это происходит. Я погуглил и не нашел ответа. Все работает нормально, если я обращаюсь с этим в обработчике ошибок. Но я хочу знать, почему это происходит. Что я должен сделать, чтобы избежать этой ошибки.

Любая помощь будет принята с благодарностью.

Спасибо за ответ..

Вот мой абстрактный код

public class FOOProxy implements IFOOProxy
{
    public static var FOO_PROXY:IFOOProxy;
    private var remote:RemoteObject;        

    public function FOOProxy()
    {

    }

    public function runCommand(request:IClientRequest):void
    {

        remote.addEventListener("result", onResult);
        remote.addEventListener("fault", onFault);          

      if(request is GeneralRequest)
        {
            var req:Request = request as CmdRequest ;
             if (req.requestType == fooController.UPDATE_REQUEST)
             {
                remote.requestTimeout=null;
             }else
             {
                remote.requestTimeout = 30;
             }                  
         }      
        remote.runCommand(request);

    }

    public function onResult(event:ResultEvent):void {
        var result:Object = (event as ResultEvent).result as Object ;
        /*
        Updating my result using callback.
        */
        CursorManager.removeBusyCursor();
    }

    public function onFault(event:FaultEvent):void {
        if(event.fault.faultCode=="Client.Error.MessageSend")
        {
            //This is where "NetConnection.call.badversion occurs"
        }

        else if(event.fault.faultCode=="Server Exception")
        // Server Exception Handling
        {               
                //Dispatch Something
        }           

    }



    public static function createProxy(callback:ICallback):IFOOProxy {
        if (FOO_PROXY != null) {
            FOO_PROXY.setCallback(callback);
            return FOO_PROXY;        
        }
        var iProxy:IFOOProxy = new FOOProxy();
        var proxy:FOOProxy = iProxy as FOOProxy; 
      //setting my callback here to update
        proxy.remote = new RemoteObject();
        proxy.remote.destination = "Rpc";           
        return proxy;
    }

}

Это где он соединяется с сервером: ID назначения "Rpc"

Я использую https, номер порта 5480 и использую secure-amf в качестве канала в удаленном -config.xml

Заранее спасибо.

2 ответа

Решение

Ошибка badversion часто является результатом того, что веб-сервер выдает ошибку при выполнении удаленного вызова, а не выбрасывает исключение в стиле amf. Поскольку клиент amf не может разобрать ответ, вы получите это сообщение об ошибке.

Используете ли вы uri 'https' и создаете channelSet вашего удаленного объекта с AMFChannel вместо SecureAMFChannel?

Этот тип общей ошибки может означать что угодно, и, скорее всего, это связано с тем, что IIS настолько хорош. Хотя проблема может быть связана с тем, как вы вызываете удаленную операцию...

Если вы абстрагировали свои удаленные сервисы в один волшебный класс, опубликуйте часть этого кода, и у меня могут быть некоторые предложения для вас... или я не могу... "на sait jamais"

Скоро поговорим, Джереми

Другие вопросы по тегам