IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Flex Discussion :

Flex BlazeDS – RPC Fault: faultCode="InvokeFailed"


Sujet :

Flex

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    119
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 119
    Par défaut Flex BlazeDS – RPC Fault: faultCode="InvokeFailed"
    Bonjour,

    J'ai suivi le tutoriel se trouvant sur ce site : http://fponchel.developpez.com/tutor...lazeds-spring/

    et je n'arrive pas à accéder à ma classe java. J'ai l'erreur suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    faultCode:InvokeFailed faultString:'[MessagingError message='Destination 'welcomeServiceDest' either does not exist or the destination has no channels defined (and the application does not define any default channels.)']' faultDetail:'Couldn't establish a connection to 'welcomeServiceDest''
    Voila mes codes ( tiré du tutoriel ) :

    WelcomeService.java ( la class java apl par le remoteObject

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    package fr.home.service;
    public class WelcomeService {
    	public String sayHello(String pLogin){
    		return "Bienvenue "+pLogin;
    	}
    }
    L'affichage mxml : FBSIntegration.mxml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    <?xml version="1.0" encoding="utf-8"?>
     
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" width="451" height="168" 
    	paddingBottom="0" paddingLeft="0" paddingRight="0" paddingTop="0">
     
    	<mx:Script>
    		<![CDATA[
    			import mx.rpc.events.FaultEvent;
    			import mx.rpc.events.ResultEvent;
     
    			private function doCall():void{
    				// Appeler le service distant
    				roWelcomeService.sayHello(tiLogin.text);
    			}
     
    			/**
    			 * Méthode invoquée en cas de succès de l'appel RPC 
    			 */ 
    			private function onResult(event : ResultEvent):void{
    				// Afficher la réponse
    				taReponse.text = event.result as String;
    			}
     
    			/**
    			 * Méthode invoquée en cas d'échec de l'appel RPC 
    			 */ 
    			private function onFault(event : FaultEvent):void{
    				// Afficher le message d'erreur
    				taReponse.text = event.fault.message;
    			}
     
    		]]>
    	</mx:Script>
     
    	<mx:RemoteObject id="roWelcomeService" 
    					 destination="welcomeServiceDest"
    					 result="onResult(event)"
    					 fault="onFault(event)"/>
    	<mx:Panel width="451" height="168" layout="absolute" title="Hello World">
    		<mx:Label x="10" y="10" text="Login : "/>
    		<mx:TextInput id="tiLogin" text="Guest"
    					  x="66" y="8" />
    		<mx:Button id="btnAppel" label="Appel de WelcomeService"
    			       x="234" y="8" 
    			       click="doCall()"/>
    		<mx:Label x="10" y="38" text="Réponse :"/>
    		<mx:TextArea id="taReponse" 
    			         x="81" y="37" width="327" height="81"/>
    	</mx:Panel>
    </mx:Application>
    La configuration de remoting-config.xml : ( petite erreur d'ailleur dans le tutoriel ou le fichier est mentionné sous le nom de remoting-service.xml ).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    <?xml version="1.0" encoding="UTF-8"?>
    <service id="remoting-service" 
        class="flex.messaging.services.RemotingService">
     
        <adapters>
            <adapter-definition id="java-object" class="flex.messaging.services.remoting.adapters.JavaAdapter" default="true"/>
        </adapters>
     
        <default-channels>
            <channel ref="my-amf"/>
        </default-channels>
     
    	<destination id="welcomeServiceDest">
    		<properties>
    			<source>fr.home.service.WelcomeService</source>
    			<scope>application</scope>
    		</properties>
    	</destination>	
     
    </service>
    Donc la tout est configuré comme dans le tutoriel etc etc et pourtant j'ai toujours le message m'indiquant qu'il n'arrive à se connecter à la class...
    qqun a t il une idée sur la raison ?

    J'ai pensé que dans le fichier : services-config.xml

    il fallait configurer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
            <channel-definition id="my-amf" class="mx.messaging.channels.AMFChannel">
                <endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/amf" class="flex.messaging.endpoints.AMFEndpoint"/>
            </channel-definition>
    Mais j'ai un doute en me disant que le server.nameet server.port etait automatiquement configuré au demerage de l'application. Quelqun peut il me confirmer ça ?

    Merci

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    119
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 119
    Par défaut
    Bon ça marche...

    Je pense que comme le dit bien le tutoriel il faut faire un clean project pour mettre à jour les fichiers de configuration. Dans mon cas ça n'a suffit... Penser à bien arrêter votre serveur, et faire un "clean tomcat work directory" ... Voila après ça fonctionne.

    Voila si jamais vous avez des difficultés, je me suis pas mal inspiré de ce site aussi : http://www.flex-tutorial.fr/2009/11/...cedestination/


+ Répondre à la discussion
Cette discussion est résolue.

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo