2010-11-11 3 views
0

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

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; 
    } 

} 

Это где она соединяется с Сервер-: Destination ID "Rpc"

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

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

+0

Попробуйте разместить это на форуме WebORB. http://tech.groups.yahoo.com/group/flashorb/. – JeffryHouser

ответ

0

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

+0

Спасибо за ответ ... Но как сделать ответ amf-style .. Есть ли flex для любого api для этого .. Или есть способ сделать со стороны Java? – Saravana

+0

Это следует обрабатывать автоматически, если вы используете blazeds. Если это не возможно, это сообщение в блоге (http://www.flexpasta.com/index.php/2008/05/16/exception-handling-with-blazeds-and-flex/) может вам помочь. –

2

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

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

Если вы отвлекли свои удаленные службы в один магический класс, разместите часть этого кода, и у меня могут быть некоторые предложения для вас .... или я не могу ... «на Саит JAMAIS»

Поговорите с вами в ближайшее время, Джереми

+0

Кроме того, я нашел случай, в котором мы получали как «badversion», так и 500 ошибок. Похож на наше основное «ContextInfo» (на бэкэнд ... класс, который содержит глобальную информацию, используемую каждым удаленным вызовом). Проблема заключалась в выпуске, который вышел без изменения связанной схемы db ... таблица не существовала и не было try-catch в выражении select в конструкторе этого ContextInfo. Вещи идут бум, и ошибки были очень случайными и загадочными. –