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

Wildfly/JBoss Java Discussion :

[EJB][Jboss] problème de déploiment d'EJB session


Sujet :

Wildfly/JBoss Java

  1. #1
    Membre régulier Avatar de 17mounir
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2005
    Messages : 101
    Points : 78
    Points
    78
    Par défaut [EJB][Jboss] problème de déploiment d'EJB session
    Bonjour,

    j'essaie de deployer un EJB session sur jBoss mais j'ai l'erreur suivante :

    javax.naming.NoInitialContextException


    voila mes fichiers xml (je sais s'il faut qlq chose de plus)

    ejb-jar.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
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN"
     "http://java.sun.com/dtd/ejb-jar_2_0.dtd">
     
    <ejb-jar>
      <description>Descripteur de déploiement de HelloWorldEJB</description>
      <display-name>HelloWorldEJB</display-name>
     
      <enterprise-beans>
        <session>
          <description>HelloWorldEJB</description>
          <display-name>HelloWorldEJB</display-name>
     
          <ejb-name>HelloWorldEJB</ejb-name>
          <home>com.mounir.ejb.HelloWorldEJBHome</home>
          <remote>com.mounir.ejb.HelloWorldEJB</remote>
          <ejb-class>com.mounir.ejb.HelloWorldEJBBean</ejb-class>
          <session-type>Stateless</session-type>
          <transaction-type>Container</transaction-type>
        </session>	
      </enterprise-beans>
     
    </ejb-jar>

    jboss.xml
    -----------
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE jboss PUBLIC "-//JBoss//DTD JBOSS 4.0//EN" "jboss_4_0.dtd" >
     
    <jboss>
    	<enterprise-beans>
    		<session>
    			<ejb-name>HelloWorldEJB</ejb-name>
    			<jndi-name>HelloWorldEJB</jndi-name>
    		</session>
    	</enterprise-beans>
    	<resource-managers>
    	</resource-managers>
    </jboss>


    Programem client de l'EJB (qui a l'air de se deployer ss erreur)
    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
    public class HelloWorldEJBClient {
     
    	public static void main(String[] args) {
    		try{
     
    			//1-Obtention d'un contexte
    			//JNDI fournit une API standard pour acceder aux rep
    			Context jndiContextInitial = new InitialContext();
     
    			//2-Obtention d'une reference à l'entree JNDI HelloWorldEJB
    			//On accede à un repertoire interne au serveur EJB
    			Object refEJB = jndiContextInitial.lookup("HelloWorldEJB");
     
    			//3-Obtention d'une reference à l'interface home du Bean (NARROW : cast)
    			HelloWorldEJBHome refHelloWorldEJB = (HelloWorldEJBHome) PortableRemoteObject.narrow(refEJB,HelloWorldEJBHome.class);
     
    			//4-Creation cote client d'un objet EJB à partir de son interface		
    			HelloWorldEJB helloWorldEJB = refHelloWorldEJB.create();
     
    			//5-Utilisation
    			for (int i = 0; i < args.length; i++ ){
    				String returnedString = helloWorldEJB.getEchoString(args[i]);
    				System.out.println("Entree :"+args[i]+" Sortie :"+returnedString);
    			}
     
    		}catch(Exception e){			
    			e.printStackTrace();
    		}
    	}
    }
    voila la joli erreur :

    javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
    .....


    Si qlq 1 peut m'aider, ça fais plus 2h que je cherche sur le net (pas trop doué :-S)

    merci
    Mounir.B

  2. #2
    Membre régulier Avatar de 17mounir
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2005
    Messages : 101
    Points : 78
    Points
    78
    Par défaut
    En fait il fallait ajouter un jar au classpath :
    jbossall-client.jar (je ne sais pas trop à quoi ça sers)

    puis dans le programme client qui va utiliser l'EJB, il fallait definir deux paramètre dans les properties :

    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
    Properties props = System.getProperties();
     
    props.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
    props.put(Context.PROVIDER_URL, "localhost");
     
    //1-Obtention d'un contexte
    InitialContext jndiContextInitial = new InitialContext(props);
     
    //2-Obtention d'une reference à l'entree JNDI HelloWorldEJB
    //On accede à un repertoire interne au serveur EJB
    Object refEJB = jndiContextInitial.lookup("HelloWorldEJB");
     
    //3-Obtention d'une reference à l'interface home du Bean (NARROW : cast)
    HelloWorldEJBHome refHelloWorldEJB = (HelloWorldEJBHome) PortableRemoteObject.narrow(refEJB,HelloWorldEJBHome.class);
     
    //4-Creation cote client d'un objet EJB à partir de son interface	
    HelloWorldEJB helloWorldEJB = refHelloWorldEJB.create();
    //5-Utilisation
    comme un objet local

    Cela m'a permi de tourner mon premier EJB :-D (meme si je maitrise pas ce que j'ai fait)
    Mounir.B

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

Discussions similaires

  1. [JBoss & EJB 3] Problème d'importation de projet dans un EJB
    Par tagsOf dans le forum Wildfly/JBoss
    Réponses: 1
    Dernier message: 06/01/2011, 19h07
  2. [EJB]JBoss et JNDI, problème pour trouver mes EJB
    Par shingo dans le forum Wildfly/JBoss
    Réponses: 3
    Dernier message: 31/12/2005, 15h14
  3. [EJB][Jboss] Déploiement d'EJB sous Eclpise/Jboss
    Par webspeak dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 19/01/2005, 19h03
  4. [Ant] [Ejb] Probléme de création d'ejb avec Genic
    Par rivierem dans le forum JOnAS
    Réponses: 7
    Dernier message: 25/06/2004, 16h21
  5. [EJB]JBoss et Pool de connexion
    Par Kleb dans le forum Wildfly/JBoss
    Réponses: 4
    Dernier message: 20/04/2004, 12h12

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