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 + Web Service [Fait]


Sujet :

Flex

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de issamjet
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Mars 2008
    Messages : 65
    Par défaut Flex + Web Service
    Salut

    ça fait plus que 2 semaines que j'essaye désespérément de faire la liaison entre Flex et la couche métier, en fait j'ai choisit d'utiliser web service, ça marche très bien quand je vais faire l'appel de Flex à mon web service pour une fonction simple où il n'y a pas des appels à la couche DAO, mais dans la deuxième cas ça marche pas, c'est à dire pour une fonction qui doit accéder à ma base de données.
    Tandis que j'ai bien testé mon web service et ça marche parfaitement bien
    Je ne sais pas si quelqu'un a une idée, sinon est-ce que je dois utiliser struts au lieu de Flex.

    Le web service que je l'ai testé et ça marche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public  String getEtapes() {
    	EtapeManagerImpl etapeManagerImpl = new EtapeManagerImpl() ;
    	String s="" ;
    	List<Etape> l = etapeManagerImpl.getList() ;
    	for(int i=0;i<l.size();i++){
    		s = s + "\t" +l.get(i).getIdEtape() ;
    	}
    	return s ;
    }


    Le code MXML pour faire l'appel à mon web service qui est le même code que je l'utilise pour appeler des fonctions de web service dont j'ai pas besoin d'accéder à la base

    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
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" height="396">
     
    <mx:WebService id="injection"
    		wsdl="http://localhost:8400/Flex_Injection/services/InjectionWS?wsdl" >
    <mx:operation name="addEtape" />
    <mx:operation name ="HelloWorld"/>	
    <mx:operation name="getEtapes"/>
     
    </mx:WebService>
     
    	<mx:Panel title="Appel à un Web Service"
    		paddingBottom="30" paddingLeft="30" paddingRight="30" paddingTop="30">
    		<mx:Button label="Appel au WebService" click="clickHandler(event)"/>
    		<mx:Label text="{injection.getEtapes.lastResult}"/>
    		<!--mx:ComboBox id="country" dataProvider="{statesService.getCountries.lastResult}"/-->
    	</mx:Panel>

    Le code d'erreur

    [RPC Fault faultString="HTTP request error" faultCode="Server.Error.
    Request" faultDetail="Error: [IOErrorEvent type="ioError" bubbles=false cancelable=false eventPhase=2 text="Error #2032: Erreur de flux. URL: http://localhost:8400/Flex_Injection/services/InjectionWS"]. URL: http://localhost:8400/Flex_Injection/services/InjectionWS"]
    at mx.rpc::AbstractInvoker/http://www.adobe.com/2006/flex/mx/internal::faultHandler()[E:\dev\3.0.x\frameworks\projects\rpc\src\mx\rpc\AbstractInvoker.as:216]
    at mx.rpc::Responder/fault()[E:\dev\3.0.x\frameworks\projects\rpc\src\mx\rpc\Responder.as:49]
    at mx.rpc::AsyncRequest/fault()[E:\dev\3.0.x\frameworks\projects\rpc\src\mx\rpc\AsyncRequest.as:103]
    at DirectHTTPMessageResponder/errorHandler()[E:\dev\3.0.x\frameworks\projects\rpc\src\mx\messaging\channels\DirectHTTPChannel.as:343]
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at flash.net::URLLoader/redirectEvent()

  2. #2
    Membre Expert
    Avatar de Jim_Nastiq
    Homme Profil pro
    Architecte, Expert Flex
    Inscrit en
    Avril 2006
    Messages
    2 335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte, Expert Flex
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 335
    Par défaut
    je ne suis pas adepte de la méthode lastResult, je préfère brancher un event RESULT et coder la fonction handler. C'est peut être le soucis, car si tu est certains que ton WebService fonctionne avec les autre méthodes

    Pensez vraiment à effectuer une recherche avant de poster, ici et sur un moteur de recherche! c'est la moindre des choses
    Pensez au tag

    Mon Blog sur la techno Flex
    Ma page sur Developpez.com

    Jim_Nastiq

  3. #3
    Membre confirmé Avatar de issamjet
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Mars 2008
    Messages : 65
    Par défaut
    Merci pour la réponse

    En fait, j'ai oublié de mettre les fonctions qui font l'appel au web service

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
      <mx:Button x="32" y="286" label="Enregistrer" width="160" click="injection.addEtape.send(etape_id.text, nom_etape.text, table_name.text,scenario_ref.text )"/>
                            </mx:Panel>
     
     
     
                private function clickHandler(event:MouseEvent):void{
                    injection.getEtapes();
                }

    Je crois que tu parle de ça, et pour le web service, je l'ai testé avec JUNIT et aussi j'ai testé la fonction getEtapes avec une classe java main et ça marche trés bien

  4. #4
    Membre confirmé Avatar de issamjet
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Mars 2008
    Messages : 65
    Par défaut
    Salut

    j'ai trouvé la solution pour ceux qui sont interessés,
    au lieu d'utiliser le balise <mx:webservice> il vaut mieux aller dans le menu Data et utiliser la fonctionnalité offerte par Flex Builder : Import web service (WSDL)

    voilà, les fonctions implémentées dans mon web service seront générées en des classes actionscript, dans ma page mxml, je fais l'import des classes
    import generated.webservice.* ;
    et je serai ensuite capable d'utiliser les fonctions de ces classes

    mais mon souci est comment je peux afficher le résultat, j'ai une fonction qui me retourne un type String, mais j'arrive pas à afficher le résultat
    si quelqu'un a une idée, je serai réconnaissant
    voilà le code source
    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
     
    	import mx.controls.Alert ;
    			import mx.rpc.soap.Operation;
    			import mx.rpc.events.InvokeEvent;
    			import mx.rpc.soap.LoadEvent;
    			import mx.rpc.events.FaultEvent;
    			import mx.rpc.events.ResultEvent;
    			import mx.rpc.soap.WebService;
    			import generated.webservices.*;
    			import generated.webservices.GetEtapesResultEvent ;
    		//	private	var service:InjectionWSService= new InjectionWSService ;
    			public var myResult:String = new String;
     
    			public function getEtape():void {
    				var service:InjectionWSService= new InjectionWSService ;
    				service.addgetEtapesEventListener( function (event:GetEtapesResultEvent):void {
    					Alert.show(event.result);
    				});
    				service.getEtapes() ;
    				//myResult =(String)service.getEtapes() ;
    			}

  5. #5
    Membre confirmé Avatar de issamjet
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Mars 2008
    Messages : 65
    Par défaut
    Salut

    Alors personne n'a une réponse, mon souci est comment utiliser les fonctions implemtées dans actionscript, comment je peux récuperer le résultat dans ma page MXML, j'ai rien à voir avec web service, c'est de flex pur maintenant, comment faire l'appel à mes actionscript depuis MXML

  6. #6
    Membre confirmé Avatar de issamjet
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Mars 2008
    Messages : 65
    Par défaut
    Salut

    j'ai pas utilisé web service mais plutot remote object RPC, blazeds, et ça bien marcher, pour ceux qui sont interessé, il faut commencer par une simple fonction implementée dans votre calsse java qui retourne un String, ensuite essayer de l'afficher le resultat dans la page MXML du Flex essayer de faire la communication entre Flex et JAVA comme premiere etape , c'est pas trop difficile et vous trouvez pas de mal d'exemple sur GOOGLE

    Enfin il vous reste qu'à faire l'appel à la fonction qui va accéder à votre base de données dans cette fonction même

    si vous voulez plus de détail, je suis prêt

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 80
    Par défaut tutorial jpa hibernate glassFish
    Bonjour,

    Il y a un excellent tutoriel sur webservice jpa hibernate qui se termine justement sur la création d'un client flex (voir table des matières à la fin). cela peut aider pour commencer.

    Salutations

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 188
    Par défaut
    Où est disponible ce tutorial? Merci

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 80
    Par défaut url tuto

  10. #10
    Membre confirmé Avatar de issamjet
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Mars 2008
    Messages : 65
    Par défaut
    C'est un tutorial sur les webservices et non pas la connexion entre Flex et le web service

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 80
    Par défaut La fin du tuto
    Bonsoir,

    C'est tout à la fin du tuto que l'on trouve le développement de l'appli flex et son branchement au webService développer pendant le tuto. Il commencer par la fin quoi ;-)

    Salutations

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

Discussions similaires

  1. Flex 4: Accès à un web service en mode chunked
    Par oanguenot dans le forum Flex
    Réponses: 0
    Dernier message: 31/03/2010, 16h52
  2. Web Service avec Flex
    Par legide dans le forum Flex
    Réponses: 0
    Dernier message: 10/03/2010, 19h54
  3. Problème FLEX Web Service REST
    Par Florian_44 dans le forum Flex
    Réponses: 1
    Dernier message: 25/06/2009, 00h58
  4. Bug application Flex/Web services Axis
    Par annesoc dans le forum Flex
    Réponses: 1
    Dernier message: 25/08/2008, 17h37
  5. [Kylix] problème web service kylix
    Par RezzA dans le forum EDI
    Réponses: 3
    Dernier message: 11/02/2003, 14h50

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