CodeS-SourceS
Rechercher un code, un tuto, une réponse

Utilisation de Merapi (communication entre java et flex)

Août 2017

Comment utiliser Merapi.

Personnellement je l'utilise pour faire une application Dock. Donc pour pouvoir lancer mes applications de façon optimale, J'ai eu besoin de Merapi.



MERAPI


Merapi est une librairie qui permet la communication entre Flex et Java.


Elle permet la transmission de message entre les deux langages afin d'étendre les possibilités de vos applications.

Pour pouvoir accéder à cette librairie très intéressante, il faut s'inscrire sur le site officiel.

Comment l'utiliser


Commencez par créer un projet Flex air.
Ajoutez y la librairie fournie dans le package Merapi.

Créez un projet Java.
Ajoutez-y les librairies Merapi fournie.

Rien qu'en faisant cela, Merapi est déjà utilisable.

Fichier source mxml


<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="285" height="42" xmlns:merapi="merapi.*">
    <mx:Button x="207" y="10" label="Send" id="btn_send" click="sendRequest()"/>
    <mx:TextInput x="10" y="10" id="ti_text"/>
    <merapi:BridgeInstance id="bridge" result="handleResponse(event)"/>
    
    <mx:Script>
     <![CDATA[
     import mx.controls.Alert;
     import merapi.Bridge;
     import merapi.messages.Message;
     import mx.rpc.events.ResultEvent;
                        
     private function sendRequest():void{
        var message:Message = new Message("MerapiTest", ti_text.text);
        bridge.sendMessage(message);
     }
            
     private function gotResult(e:ResultEvent):void{
        Alert.show(e.message.body.toString());
     }
            
     private function handleResponse(event:Event):void{
        var ev:ResultEvent = ResultEvent(event);
        var msg:Message = Message(ev.result);
        if (msg.type == "MerapiTest") {
         Alert.show(String(msg.data));
        }
     }

    ]]>
    </mx:Script>    
</mx:WindowedApplication>

Fichier source Java


package be.fsoffe.javamerapi;

import merapi.Bridge;
import merapi.messages.IMessage;
import merapi.messages.IMessageHandler;
import merapi.messages.Message;

public class MerapiTest implements IMessageHandler{
    
    /**
     * @param args
     */
    public static void main(String[] args) {
        try {
            Bridge.getInstance().registerMessageHandler("MerapiTest", new MerapiTest());            
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    @Override
    public void handleMessage(IMessage msg) {        
        try {
            System.out.println(((Message)msg).getData());
            Bridge.getInstance().sendMessage(new Message("MerapiTest","Hello From Java"));
        } catch (Exception e) {
            e.printStackTrace();
       }
    }
}


Si vous connaissez les deux langages, le code parle de lui-même.

Pour le faire fonctionner il suffit de reprendre le code ci-dessus et de lancer l'application Java avant l'application Flex.

A voir également

Publié par ardeus.
Ce document intitulé «  Utilisation de Merapi (communication entre java et flex)  » issu de CodeS-SourceS (codes-sources.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Connexion à une base de données access
Dessiner avec Swing (1): le mécanisme de base