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

Servlets/JSP Java Discussion :

Communication RMI avec une Servlet


Sujet :

Servlets/JSP Java

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Février 2010
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2010
    Messages : 44
    Par défaut Communication RMI avec une Servlet
    Hello,

    J'ai une application java avec laquelle je dois pouvoir interagir via une interface web. Pour ce faire, je pensais faire communiquer mon application java à une servlet via RMI. Les essaies que j'ai fait avec RMI n'ont pas été concluant (= j'arrive bien à faire planté GlassFish mais pas vraiement à faire la communication ) et comme je ne trouve rien dans le guide du développeur, je pense que je suis à côté de se qui devrait se faire...

    Alors j'ai deux "petites" questions :

    1) Est-ce que c'est recommandé de faire communiquer un application java avec une servlet ?
    2) Quel est le moyen recommendé pour faire communiquer un application java avec une servlet ?

    Merci!

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    522
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 522
    Par défaut
    Salut,

    A l'origine, RMI permet la communication entre appli Java d'une même JVM. Je sais que ça a pas mal évolué depuis, avec notamment l'utilisation de MBeans (surcouche du RMI) mais je te conseille plutôt de communiquer via des sockets.
    C'est simple et plus évolutif que RMI (en cas de changement de techno).

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Février 2010
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2010
    Messages : 44
    Par défaut
    Avec RMI tu peux sans autre faire communiquer des applications qui ont leur propre JVM...

    Les sockets pourraient être une solution mais sa m'a l'air un peu archaïque comme solution. Il y aurait pas mieux ?

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    522
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 522
    Par défaut
    Archaique ?? Je ne vois pas vraiment pourquoi.

    Sinon, tu peux communiquer en HTTP via des webservices.
    C'est à la mode en ce moment.

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Février 2010
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2010
    Messages : 44
    Par défaut
    Sinon, tu peux communiquer en HTTP via des webservices.
    En fait, c'était un peu ma première idée mais comme je trouve pas comment faire communiquer mes EJB (=? webservices) avec mon application java via RMI ou autre je me suis dit que sa devait pas être la bonne solution...

    Mais serait-il possible que mon interface web et mon application javav se parlent à travers un EJB en communiquant en HTTP ? Un truc du genre : serveur <--(HTTP)--> EJB <--(HTTP)--> interface web

    C'est à la mode en ce moment.
    J'ai remarqué et je veux essayé de passer à côté du phonème de mode pour trouver la bonne solution pour résoudre se problème de façon simple et élégante (solution qui pourrait être les webservices...)

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    522
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 522
    Par défaut
    Citation Envoyé par butane Voir le message
    Mais serait-il possible que mon interface web et mon application javav se parlent à travers un EJB en communiquant en HTTP ? Un truc du genre : serveur <--(HTTP)--> EJB <--(HTTP)--> interface web
    Je ne saurais pas te répondre. Je ne suis un grand spécialiste des EJB.

    Par contre, l'utilisation de webservices est assez simple.
    Côté client, tu utilises l'objet HttpURLConnection pour te connecter à une adresse, tu envoies ta requête (en général, tu postes un conteneur XML) et tu reçois une réponse de type XML également.
    Côté serveur, les solutions Java ne manquent pas. Axis par exemple.

  7. #7
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Une application java peut très bien utiliser un EJB ou une méthode distante via RMI, c'est fait pour. Pourquoi vouloir utiliser http ?
    (en passant, RMI est justement fait pour causer de JVM à JVM contrairement à ce que disait TekP@f)

    EJB est peut-être un peu luxueux, ça va dépendre de ce que tu veux faire, dans tous les cas, il se base sur RMI.
    Pour utiliser un EJB, il faut un serveur d'application (GlassFish, JBoss, etc...). Pour RMI, non.
    C'est un peu dommage de passer par un webservice dans le contexte java<->java, et moins performant.
    Si par contre tu veux pouvoir utiliser une "méthode" en dehors de java, là oui, c'est un bon choix.

    Quelle est la fonctionnalité voulue ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Membre averti
    Homme Profil pro
    Inscrit en
    Février 2010
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2010
    Messages : 44
    Par défaut
    Quelle est la fonctionnalité voulue ?
    Je suis en train d'évaluer diverses technologies pour faire évoluer une application java qui a des interfaces web. Actuellement, l'application principale est en java et communique avec un java bean qui tourne sur Tomcat. Ce bean est composé de page HTML, de (trop peu ) de CSS, de JS et pour finir de JSP... En terme de communication pour tous les appels depuis l'interface web vers l'application java c'est du RMI mais (et c'est la que c'est drôle ou pas) pour ce qui est des remontés d'états depuis l'application java vers l'IHM c'est un mécanisme qui va modifier directement les fichiers HTML qui sont servit par Tomcat... (PS : c'est pas moi qui à fait l'application java de base )

    Donc je suis en train de refaire toutes cette partie et j'essaie de trouver les technologies les plus adéquates pour les problèmes en question... Si quelqu'un au passage à des idées je suis preneur...

    Sinon est-ce que quelqu'un pourrait me dire quelles sont les différences entre RMI et JMS ?

  9. #9
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Alors là, c'est le monde à l'envers...

    Si le bean est géré par Tomcat, du côté Tomcat c'est un accès direct ou par JNDI mais pas du RMI.
    C'est l'application java qui devrait utiliser du RMI pour accéder au bean de Tomcat...
    Une alternative à ceci... je n'ai rien compris à ce que tu as écrit... plausible
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  10. #10
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Pour ta dernière question, la différence entre RMI et JMS, et bien, ça n'a rien à voir...

    RMI sert à accéder à un objet java distant à partir d'une application java

    JMS permet de faire des traitements asynchrones (ou pas) via des files d'attente de messages. Il s'appuie généralement sur un middleware comme MQSeries, ActiveMQ etc... pour l'acheminement des messages.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  11. #11
    Membre averti
    Homme Profil pro
    Inscrit en
    Février 2010
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2010
    Messages : 44
    Par défaut
    Merci pour vos réponses

    Pour ceux qui serait intéressé par faire communiquer une application java avec une servlet servit par GlassFish via RMI il faut :

    1. Activer le gestionnaire de sécurité : Dans l'IHM web : Configuration → Security → Security Manager = Enabled

    2. Ajouter la police de sécurité dans le fichier : ..\glassfishv3\glassfish\domains\domainX\config\server.policy

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    grant codeBase "file:${com.sun.aas.instanceRoot}/applications/MyServlet/-" {
    	permission java.security.AllPermission;
    };
    3. Redémarrer GlassFish

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 05/05/2006, 18h36
  2. [Servlet]pdf sur le disque, l'afficher avec une servlet
    Par canou94 dans le forum Servlets/JSP
    Réponses: 9
    Dernier message: 08/12/2005, 15h11
  3. [Servlet]probleme avec une servlet
    Par adilou1981 dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 15/06/2005, 10h17
  4. Interroger les valeur d1 [ javabean ] avec une [ servlet ]
    Par jmeclipse dans le forum Servlets/JSP
    Réponses: 21
    Dernier message: 07/06/2005, 12h14
  5. Réponses: 2
    Dernier message: 29/03/2004, 13h44

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