Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 19-11-2008 09:33:18

Dator
Membre
Lieu: Lyon
Date d'inscription: 14-05-2008
Messages: 10
Site web

[Zend_Amf] Erreur : NetConnection.Call.BadVersion dans Flex

Bonjour,

Je viens de me lancer dans la nouvelle version de Zend (La version1.7).
Je voulais tester le composant Zend_Amf mais il me sort une erreurs.

IndexController.php (/controllers)

Code:

require_once 'Zend/Controller/Action.php';

class IndexController extends Zend_Controller_Action 
{
    /**
     * The default action - show the home page
     */
    public function indexAction() 
    {
        // TODO Auto-generated IndexController::indexAction() action
        $amfObject = new Zend_Amf_Server();
        $amfObject -> setClass('ContactService');
           $amfObject -> handle();
    }
}

ContactService.php (/models)

Code:

class ContactService {
    /** 
    * get contacts 
    *  
    * @return array
    **/ 
    function getContacts() {
        $dbh = mysql_connect('localhost', 'root');
        $listAll = 'SELECT * FROM contacts.contacts';
        $result = mysql_query($listAll, $dbh);
        $contactsArray = array();
        while ($row = mysql_fetch_array($result)) {
            $contact = new Contact();
            $contact->name = $row['name'];
            $contact->email = $row['email'];
            $contact->phone = $row['phone'];
            array_push($contactsArray, $contact);
        }
        return $contactsArray;
      }
      
    /** 
    * save 
    * 
    * @param  Contact $contact 
    * @return null 
    **/       
      function saveContact(Contact $contact) {
          $name = $contact->name;
          $email = $contact->email;
          $phone = $contact->phone;
          $dbh = mysql_connect('localhost', 'root');
          $insert = "INSERT INTO contacts.contacts (id, name, email, phone) VALUES (NULL, '$name', '$email', '$phone')";
        $doInsert = mysql_query($insert, $dbh);
      }
}

Contact.php (/models)

Code:

class Contact {
    public $id = 0;
    public $name = "";
    public $email = "";
    public $phone = "";
}

Et pour le code flex :

AmfZend.mxml

Code:

<?xml version="1.0" encoding="utf-8"?> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
    creationComplete="myservice.getContacts()"> 
    
     <mx:Script> 
        <![CDATA[
            import mx.collections.ArrayCollection;
            import mx.automation.codec.ArrayPropertyCodec;
            import mx.rpc.events.ResultEvent;
            import mx.rpc.events.FaultEvent;        
            import ContactVO;
            import mx.controls.Alert;
            import mx.utils.ArrayUtil;
            
            [Bindable] public var dp:ArrayCollection;
            
            public function handleContacts(event:ResultEvent):void {
                dp = new ArrayCollection(ArrayUtil.toArray(event.result));
                myDG.dataProvider = dp;
            }
            
            public function handleFault(event:FaultEvent):void {
                Alert.show(event.fault.faultDetail, event.fault.faultCode);
            }
            
            public function saveContact():void {
                var newContact:ContactVO = new ContactVO();
                newContact.name = nameInput.text;
                newContact.email = emailInput.text;
                newContact.phone = phoneInput.text;
                myservice.saveContact(newContact);
            }
            
            public function handleSave(event:ResultEvent):void {
                myservice.getContacts();
                nameInput.text = '';
                emailInput.text = '';
                phoneInput.text = '';
            } 
        ]]> 
    </mx:Script> 
    
    <mx:RemoteObject endpoint="http://localhost/ZendFramework17/public/" 
        id="myservice" destination="zend" source="ContactService" 
        fault="handleFault(event)">
            <mx:method name="getContacts" result="handleContacts(event)" 
                fault="handleFault(event)"/>
            <mx:method name="saveContact" result="handleSave(event)" 
        fault="handleFault(event)"/>
    </mx:RemoteObject> 
    
    <mx:DataGrid id="myDG"  width="276" x="10" y="10" height="244"/>
    
    <mx:Panel x="10" y="262" width="276" height="217">
        <mx:TextInput id="nameInput" />
        <mx:TextInput id="emailInput" />
        <mx:TextInput id="phoneInput" />
        <mx:Button click="saveContact()" name="save"  label="Save"/>
    </mx:Panel>
</mx:Application>

et ContactVO.as

Code:

package
{
    public class ContactVO
    {
        public var id:int;
        public var name:String;
        public var email:String;
        public var phone:String;

        public function ContactVO()
        {
        }

    }
}

Et le plus important, le message d'erreur au chargement de la page (creationComplete) et quand je click sur le bouton "Save" :

Channel.Connect.Failed error NetConnection.Call.BadVersion: : url: 'http://localhost/ZendFramework17/public/'

Quelqu'un peut m'aider?

Merci beaucoup,

Cordialement

Clément , http://www.dator.fr

PS: j'avais déjà posté cela, mais pas dans la bonne section, désolé wink

Hors ligne

 

#2 15-06-2009 10:25:07

ramos
Membre
Date d'inscription: 19-03-2009
Messages: 14

Re: [Zend_Amf] Erreur : NetConnection.Call.BadVersion dans Flex

Salut,

Juste une piste de réponse pour les autres utilisateurs de Zend_Amf passant par ici : ce genre d'erreur (BadVersion) est très commune et est le signe d'une erreur dans le script php. En utilisant firebug dans l'onglet requêtes, on peut voir les requêtes amf et dans response, il y a généralement l'information sur l'erreur php (quand tout va bien, l'onglet response de la requête est vide).

Hors ligne

 

#3 07-01-2010 15:26:06

probitaille
Membre
Lieu: Montréal
Date d'inscription: 20-04-2009
Messages: 336
Site web

Re: [Zend_Amf] Erreur : NetConnection.Call.BadVersion dans Flex

Dator, vas-tu nous faire un beau tutoriel dans ton blog wink Il m'a aidé ce blog en tk...

Pour l'instant, je buche sur la même erreur que toi !

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages