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

Glassfish et Payara Java Discussion :

[EJB3] Problème d'accès distant


Sujet :

Glassfish et Payara Java

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
    231
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 231
    Par défaut [EJB3] Problème d'accès distant
    Bonjour,

    Pour mon stage j'ai développé un logiciel en EJB 3.
    J'ai donc mon module beans (ejb) qui est déployé sur mon serveur Glassfish
    --> ca c'est bon.

    D'autres part depuis le serveur glassfish(donc en local) je lance mon application jar et cela fonctionne.

    Par contre à travers le réseau, je lance l'application et là ca ne fonctionne plus.
    J'ai une belle erreur:
    29 oct. 2008 08:06:34 com.sun.corba.ee.impl.transport.SocketOrChannelConnection
    mpl <init>
    ATTENTION: "IOP00410201: (COMM_FAILURE) Connection failure: socketType: IIOP_CL
    AR_TEXT; hostname: 127.0.0.1; port: 3700"
    org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 201 completed: No
    at com.sun.corba.ee.impl.logging.ORBUtilSystemException.connectFailure(
    RBUtilSystemException.java:2690)
    at com.sun.corba.ee.impl.logging.ORBUtilSystemException.connectFailure(
    RBUtilSystemException.java:2711)
    at com.sun.corba.ee.impl.transport.SocketOrChannelConnectionImpl.<init>
    SocketOrChannelConnectionImpl.java:261)
    at com.sun.corba.ee.impl.transport.SocketOrChannelConnectionImpl.<init>
    SocketOrChannelConnectionImpl.java:274)
    at com.sun.corba.ee.impl.transport.SocketOrChannelContactInfoImpl.creat
    Connection(SocketOrChannelContactInfoImpl.java:130)
    at com.sun.corba.ee.impl.protocol.CorbaClientRequestDispatcherImpl.begi
    Request(CorbaClientRequestDispatcherImpl.java:192)
    at com.sun.corba.ee.impl.protocol.CorbaClientDelegateImpl.request(Corba
    lientDelegateImpl.java:181)
    at com.sun.corba.ee.impl.protocol.CorbaClientDelegateImpl.is_a(CorbaCli
    ntDelegateImpl.java:325)
    at org.omg.CORBA.portable.ObjectImpl._is_a(Unknown Source)
    at org.omg.CosNaming.NamingContextHelper.narrow(Unknown Source)
    at com.sun.enterprise.naming.SerialContext.narrowProvider(SerialContext
    java:127)
    at com.sun.enterprise.naming.SerialContext.getProvider(SerialContext.ja
    a:182)
    at com.sun.enterprise.naming.SerialContext.lookup(SerialContext.java:33
    )
    at javax.naming.InitialContext.lookup(Unknown Source)
    at fr.hh.com.locator.ServiceLocator.getRemoteObject(ServiceLocator.java
    60)
    at fr.hh.com.locator.ServiceLocator.getRemoteInterface(ServiceLocator.j
    va:49)
    at fr.hh.com.delegate.SiteDelegate.getSiteRemote(SiteDelegate.java:153)
    at fr.hh.com.delegate.SiteDelegate.listingCodeDr(SiteDelegate.java:100)
    at fr.hh.com.gui.AccueilFrame.remplissage(AccueilFrame.java:320)
    at fr.hh.com.gui.AccueilFrame.<init>(AccueilFrame.java:42)
    at fr.hh.com.gui.MainFrame.<init>(MainFrame.java:46)
    at hygienehospitaliere.Main.main(Main.java:61)
    Caused by: java.lang.RuntimeException: java.net.ConnectException: Connection re
    used: connect
    at com.sun.enterprise.iiop.IIOPSSLSocketFactory.createSocket(IIOPSSLSoc
    etFactory.java:347)
    at com.sun.corba.ee.impl.transport.SocketOrChannelConnectionImpl.<init>
    SocketOrChannelConnectionImpl.java:244)
    ... 19 more
    Caused by: java.net.ConnectException: Connection refused: connect
    at sun.nio.ch.Net.connect(Native Method)
    at sun.nio.ch.SocketChannelImpl.connect(Unknown Source)
    at com.sun.corba.ee.impl.orbutil.ORBUtility.openSocketChannel(ORBUtilit
    .java:105)
    at com.sun.enterprise.iiop.IIOPSSLSocketFactory.createSocket(IIOPSSLSoc
    etFactory.java:332)
    Pourtant la structure de mon jar: voir piece jointe.

    ce que je veux dire c'est que j'ai mon fichier jndi.properties.

    Dedans, il y a:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    java.naming.factory.initial=com.sun.enterprise.naming.SerialInitContextFactory
    java.naming.factory.url.pkgs=com.sun.enterprise.naming
    java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl
    org.omg.CORBA.ORBInitialHost=a.b.c.d
    org.omg.CORBA.ORBInitialPort=3700
    où a.b.c.d est l'adresse du serveur glassfish.


    Avant tout fonctionnait bien quand j'étais en stage . Maintenant j'essaie de retoucher le logiciel après mon stage depuis chez moi. Et je déploie le fichier jar sur mon lieu de stage.

    Pourriez vous me donner une piste. Merci d'avance.
    Images attachées Images attachées  

  2. #2
    Membre Expert Avatar de nathieb
    Homme Profil pro
    DevOps
    Inscrit en
    Mai 2004
    Messages
    1 058
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : DevOps
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 058
    Par défaut Vivie le stage
    Bonjour,

    Je comprends mal la notion de déploiement en local ou distant ??

    que cela soit l'un ou l'autre tu déploies un EAR ?

    Qu'elle est la vrai différence ?

    pourquoi utilises tu une IP différentes de localhost ?

    Tes EJB sont local ou remote ?

    Un firewall dans le coin ?

    olivier

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 231
    Par défaut
    Citation Envoyé par nathieb Voir le message
    Bonjour,

    Je comprends mal la notion de déploiement en local ou distant ??
    abus de langage??
    quand je dis déploiement local, j'installe la partie cliente sur le serveur glassfish. La ca marche niquel.
    Déploiement réseau= je l'installe sur des ordinateurs distants accédant aux ejbs.
    Citation Envoyé par nathieb Voir le message
    que cela soit l'un ou l'autre tu déploies un EAR ?
    non un jar. Ca fonctionnais très bien avant que je fasse les modifications de mon jar (partie cliente).
    Citation Envoyé par nathieb Voir le message
    pourquoi utilises tu une IP différentes de localhost ?
    Je comprends pas?
    Si c est dans mon fichier jndi.properties c est parce que cela indique quel serveur glassfish a attaqué.
    Sinon j'ai pas trop compris
    Citation Envoyé par nathieb Voir le message
    Tes EJB sont local ou remote ?
    remote
    Citation Envoyé par nathieb Voir le message
    Un firewall dans le coin ?
    aucun

    Sinon ca marchait bien avant. Ca dois etre un fichier de paramétrage qui a sauté :/
    Si tu as encore des idées ou quelqu'un d autre...
    Merci encore.

  4. #4
    Rédacteur
    Avatar de longbeach
    Profil pro
    Architecte de système d’information
    Inscrit en
    Avril 2003
    Messages
    943
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Avril 2003
    Messages : 943
    Par défaut
    Est-ce qu'on peut voir SiteDelegate.java et ServiceLocator.java ?

    Le message d'erreur signale une tentative de création /ouverture de socket, ce qui n'est pas permis dans les EJBs, d'où la RuntimeException.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 231
    Par défaut
    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    package fr.hh.com.locator;
     
    import fr.hh.com.exception.ServiceLocatorException;
    import java.util.HashMap;
    import java.util.Map;
    import javax.jms.ConnectionFactory;
    import javax.jms.Destination;
    import javax.naming.Context;
    import javax.naming.InitialContext;
     
    /**
     *
     * @author Benjamin
     */
    public class ServiceLocator {
     
        private final String cname = this.getClass().getName();
        private Context initalContext;
        private Map<String, Object> cache;
        // ======================================
        // =             Singleton              =
        // ======================================
        private static final ServiceLocator instance = new ServiceLocator();
     
        public static ServiceLocator getInstance() {
            return instance;
        }
     
        private ServiceLocator() throws ServiceLocatorException {
            try {
              initalContext = new InitialContext();
                cache = new HashMap<String, Object>();
            } catch (Exception e) {
                throw new ServiceLocatorException(e);
            }
        }
     
        /* @param jndiName JNDI name of the EJB that we are looking for
         * @return the EJB Home corresponding to the homeName
         * @throws ServiceLocatorException thrown if lookup problems
         */
        public Object getRemoteInterface(String jndiName) throws ServiceLocatorException {
            String methodName = "getRemoteInterface";
     
            Object remoteInterface = getRemoteObject(jndiName);
            return remoteInterface;
        }
     
        private synchronized Object getRemoteObject(String jndiName) throws ServiceLocatorException {
            String methodName = "getObject";
     
     
            Object remoteObject = cache.get(jndiName);
            if (remoteObject == null) {
                try {
                    remoteObject = initalContext.lookup(jndiName);
                    cache.put(jndiName, remoteObject);
                } catch (Exception e) {
                    throw new ServiceLocatorException(e);
                }
            }
            return remoteObject;
        }
     
        public ConnectionFactory getConnectionFactory(String connFactoryName) throws ServiceLocatorException {
            String methodName = "getConnectionFactory";
     
            ConnectionFactory factory = (ConnectionFactory) getRemoteObject(connFactoryName);
            return factory;
        }
     
        public Destination getDestination(String destinationName) {
            String methodName = "getDestination";
     
            Destination destination = (Destination) getRemoteObject(destinationName);
            return destination;
        }
     
    }
    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
    public static void maj(Site o) {
            getSiteRemote().maj(o);
        }
     
        public static void suppression(Object o){
            getSiteRemote().suppression(o);
        }
     
        // ======================================
        // =            Private methods         =
        // ======================================
        private static SiteRemote getSiteRemote() {
            SiteRemote siteRemote;
            siteRemote = (SiteRemote) ServiceLocator.getInstance().getRemoteInterface("ejb/stateless/Site");
            return siteRemote;
        }

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 231
    Par défaut
    pour moi c est plus un probleme de jndi! Enfin je penses. je suis pas sur.

  7. #7
    Rédacteur
    Avatar de longbeach
    Profil pro
    Architecte de système d’information
    Inscrit en
    Avril 2003
    Messages
    943
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Avril 2003
    Messages : 943
    Par défaut
    Je vois rien de bizarre dans le code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ATTENTION: "IOP00410201: (COMM_FAILURE) Connection failure: socketType: IIOP_CL
    AR_TEXT; hostname: 127.0.0.1; port: 3700"
    C'est bizarre le hostname ... t'as pas du paramètrage à faire à ce niveau là ? Mettre l'IP du serveur Glassfish ?

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

Discussions similaires

  1. [IIS 7.5] Problème d'accès distant sur serveur perso
    Par flyman30 dans le forum IIS
    Réponses: 1
    Dernier message: 25/01/2015, 17h45
  2. problème d'accès distant
    Par ferhat.adel dans le forum Windows Serveur
    Réponses: 6
    Dernier message: 24/12/2013, 11h45
  3. Perl + mysql : problème d'accès distant
    Par fabienr37 dans le forum SGBD
    Réponses: 4
    Dernier message: 24/10/2012, 17h11
  4. Problème d'accès distant
    Par agdid04 dans le forum Administration
    Réponses: 5
    Dernier message: 08/06/2010, 14h49
  5. [PHP 5.2] Problème d'accès distant avec fopen et fgets
    Par DanLM dans le forum Langage
    Réponses: 1
    Dernier message: 17/03/2009, 13h12

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