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 :

RemoteObject qui n'envoie rien


Sujet :

Flex

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Octobre 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 54
    Par défaut RemoteObject qui n'envoie rien
    Bonsoir,

    alors voila, j'ai fais un petit projet sous Maven avec Flex et Spring. C'est un simple HelloWorld, où la réponse est crée par une classe java. Donc jusque là rien de bien compliqué. Seulement, mon remoteObject n'a pas l'air d'envoyer de message, et surtout il ne provoque pas d'erreur.
    Alors j'ai essayer avec GraniteDS, ca marchait pas et la j'ai essayé avec BlazeDS et spring integration, ca ne marche pas non plus. Je ne comprend pas pourquoi ! Tout à l'air bon
    Le web.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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    <web-app>
        <display-name>TestFront</display-name>
        <description>BlazeDS Application</description>
     
        <!-- Http Flex Session attribute and binding listener support -->
        <listener>
            <listener-class>flex.messaging.HttpFlexSession</listener-class>
        </listener>
     
        <!-- Front Controller de Spring MVC qui va gerer les requetes Flex -->
        <servlet>
            <servlet-name>Spring MVC Dispatcher Servlet</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
            <init-param>
                <param-name>contextConfigLocation</param-name>
                <param-value>/WEB-INF/applicationContext.xml</param-value>
            </init-param>
            <load-on-startup>1</load-on-startup>
        </servlet>
     
        <!-- Mapping des requetes pour le controlleur Spring -->
        <servlet-mapping>
            <servlet-name>Spring MVC Dispatcher Servlet</servlet-name>
            <url-pattern>/messagebroker/*</url-pattern>
        </servlet-mapping>
     
        <welcome-file-list>
            <welcome-file>index.html</welcome-file>
        </welcome-file-list>
    </web-app>
    Alors voilà l'applicationContext.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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    <beans xmlns="http://www.springframework.org/schema/beans"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    <!-- Maps request paths at /messagebroker to the BlazeDS MessageBroker -->
    	<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
            <property name="mappings">
                <value>
                    /*=flexMessageBroker
                </value>
            </property>
        </bean>
     
    	<!-- Handler qui va gerer les differents canaux Flex ( AMF, Http ,...) -->
    	<bean class="org.springframework.flex.messaging.servlet.MessageBrokerHandlerAdapter"/>
     
    	<!-- Factory qui va creer le broker Flex -->
    	<bean id="flexMessageBroker" class="org.springframework.flex.messaging.MessageBrokerFactoryBean" >
    		<!-- Configuration du chemin vers le service-config.xml  -->
    		<!--property name="servicesConfigPath" value="/flex/services-config.xml" /-->
    	</bean>
     
    	<bean id="bookService" class="application.HelloWordService" />
     
    	<!-- Exportation du service Tudu sous le nom TuduService  -->
        <bean id="book" class="org.springframework.flex.messaging.remoting.FlexRemotingServiceExporter">
            <property name="messageBroker" ref="flexMessageBroker"/>
            <property name="service" ref="bookService"/>
        </bean>	
     
    </beans>

    Le services-config.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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    <services-config>
     
        <services>      
            <service-include file-path="remoting-config.xml" />
        	<!-- 
        		Specifie un canal par default pour toutes destinations
            -->   
            <default-channels>
               <channel ref="my-amf"/>
            </default-channels>    
    	</services>
     
        <channels>    
            <channel-definition id="my-amf" class="mx.messaging.channels.AMFChannel">
                <endpoint url="http://localhost:8080/testFront/messagebroker/amf" class="flex.messaging.endpoints.AMFEndpoint"/>
            </channel-definition>
        </channels>
     
        <logging>
            <!-- You may also use flex.messaging.log.ServletLogTarget -->
            <target class="flex.messaging.log.ConsoleTarget" level="debug">
                <properties>
                    <prefix>[BlazeDS] </prefix>
                    <includeDate>false</includeDate>
                    <includeTime>false</includeTime>
                    <includeLevel>true</includeLevel>
                    <includeCategory>false</includeCategory>
                </properties>
                <filters>
                    <pattern>Endpoint.*</pattern>
                    <pattern>Service.*</pattern>
                    <pattern>Configuration</pattern>
                </filters>
            </target>
        </logging>
     
    </services-config>
    Le remote_config.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?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>
     
      </service>
    le 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
     
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" horizontalAlign="center" verticalAlign="middle">
        <mx:Script>
            <![CDATA[
            	import mx.messaging.AbstractConsumer;
     
                import mx.controls.Alert;
    			private function faultHandler(event:FaultEvent):void{
    				Alert.show(event.fault.faultString);
    			}
            ]]>
        </mx:Script>
     
    	<mx:RemoteObject id="srv" destination="bookService" fault="faultHandler(event)"/>
     
        <mx:Panel styleName="Panel" title="Hello Word Sample">
            <mx:Label text="Enter your name:"/>
            <mx:TextInput id="nameInput" />
            <mx:Button label="Say Hello" click="srv.sayHello(nameInput.text)"/>
        </mx:Panel>
     
        <mx:Label styleName="Result" text="{srv.sayHello.lastResult}"/>
     
    </mx:Application>

    et enfin mon java
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    package application;
     
    public class HelloWordService {
    	public HelloWordService(){
            System.out.println("construit!");
        }
     
    	public String sayHello(String name) {
            System.out.println("appel!");
            return "Hello " + name + "!";
        }
     
    }
    Si quelqu'un à une idée, je suis preneur parce uqe la franchement ca fait longtemps que je cherche

    Merki d'avance

  2. #2
    Futur Membre du Club
    Inscrit en
    Décembre 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 6
    Par défaut Erreur 404 avec Granetds
    J'ai à peut près la même configuration (exemple HelloWorld de granite ds) et le même comportement. Le message est envoyé, je vois le post HTTP dans les logs d'un serveur Tomcat mais le code retour est un 404 sur l'url /HelloWord/graniteamf/amf. Je ne comprends pas bien car j'ai un exemple un peu plus complexe qui fonctionne avec le même type d'url.

    La seule différence (me semble t-il) vient de la façon dont l'objet remoteobject est invoqué (et/ou initialisé).
    Dans le cas qui ne fonctionne pas, le fichier mxml contient la définition suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <mx:RemoteObject id="srv" destination="helloWorldService"/>
    ...
    <mx:Button label="Say Hello" click="srv.sayHello(nameInput.text)"/>
    Dans le cas qui fonctionne, l'objet remoteobject est initialisé en actionscript.
    			loginService = new RemoteObject();
    			loginService.source = "LoginService";
    			loginService.destination = "LoginService";
    			loginService.addEventListener( FaultEvent.FAULT, onFault );
    			loginService.login.addEventListener( ResultEvent.RESULT, onResult );
    Une idée?

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 895
    Par défaut
    Bonjour,

    ta méthode côté Java est appelée ?
    Si oui essaie plutôt dans ton code MXML ceci :
    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
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" horizontalAlign="center" verticalAlign="middle">
        <mx:Script>
            <![CDATA[
            	import mx.messaging.AbstractConsumer;
    
                import mx.controls.Alert;
    			private function faultHandler(event:FaultEvent):void{
    				Alert.show(event.fault.faultString);
    			}
                            private function successHandler(event:ResultEvent):void{
    				resultLabel.text = event.result as String;
    			}
            ]]>
        </mx:Script>
    
    	<mx:RemoteObject id="srv" destination="bookService" fault="faultHandler(event)" result="successHandler(event)"/>
    
        <mx:Panel styleName="Panel" title="Hello Word Sample">
            <mx:Label text="Enter your name:"/>
            <mx:TextInput id="nameInput" />
            <mx:Button label="Say Hello" click="srv.sayHello(nameInput.text)"/>
        </mx:Panel>
            
        <mx:Label styleName="Result" id="resultLabel"/>
        
    </mx:Application>
    Je n'ai pas testé le code donc n'hésites pas à le dire si ça ne marche pas.

    Je ne sais pas si ça va régler ton problème mais on peut déjà commencer par ça .

Discussions similaires

  1. Fonction envoi de mail qui n'envoi rien
    Par cuisto44000 dans le forum Langage
    Réponses: 3
    Dernier message: 10/06/2013, 18h18
  2. champs file qui n'envoie rien
    Par lelapinou dans le forum Balisage (X)HTML et validation W3C
    Réponses: 9
    Dernier message: 21/07/2008, 12h50
  3. Probleme avec send qui n'envoi rien
    Par zeleyou dans le forum C++
    Réponses: 5
    Dernier message: 06/02/2006, 15h27
  4. procédure stockée qui ne fait rien
    Par trotters213 dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 10/03/2005, 20h25
  5. [LG]Programme qui n'affiche rien
    Par ousunas dans le forum Langage
    Réponses: 4
    Dernier message: 17/02/2004, 19h38

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