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

Java EE Discussion :

NoInitialContextException à l'execution [EJB]


Sujet :

Java EE

  1. #1
    Membre confirmé Avatar de maysam
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 112
    Par défaut NoInitialContextException à l'execution
    Bonjour à tous
    Quand j'execute mon appli EJB 3 j(ai l'exception suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    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
    	at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:645)
    	at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:247)
    	at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:284)
    	at javax.naming.InitialContext.lookup(InitialContext.java:351)
    	at test.Test.main(Test.java:13)
    le client:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public class Test {
    	public static void main(String[] args) {
    	    try {
    	        InitialContext ctx = new InitialContext();
    	        ScriptFacade bean = ( ScriptFacade)   ctx.lookup("com.elyx.application.entity.ScriptFacadeBean");
    	        Script script=new Script(5, "pan", "zoom", "agrandir la carte");
    	         bean.add(script) ;
    	    } catch (NamingException e) {
    	        e.printStackTrace();
    	    }
    	} 
    }
    la classe entité:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    @Entity
    @Table(name="script")
    public class Script implements Serializable {
    	private static final long serialVersionUID = 1L;
    	private int id ;
    	private String nom ;
    	private String description ;
    	private String contenu ;
            ......
    l'interface:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    @Remote
    public interface ScriptFacade {
    	public void add(Script script) ;
    	public void delete(Script script) ;
    	public void update(Script script) ;
    	public String[] search(String key);
    }
    la classe stateless
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    @Stateless
    public class ScriptFacadeBean implements ScriptFacade{
    	@PersistenceContext (unitName="elyxDoc")
    	private EntityManager em;
    	public void add(Script script) {		
    		em.persist(script) ;
    	}
    	public void delete(Script script) {
    		script=em.merge(script) ;
    		em.remove(script) ;		
    	}
    	public void update(Script script) {
    		script=em.merge(script) ;	
    	}
    merci d'avance pour votre aide

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 62
    Par défaut
    Salut,

    Il faut simplement ajouter un fichier jndi.properties dans le dossier src de ton projet.

    Par exemple, si tu utilises jboss, tu auras quelque chose du genre :
    java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
    java.naming.provider.url=localhost:1099
    java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
    A+

  3. #3
    Membre confirmé Avatar de maysam
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 112
    Par défaut
    Que signifie cette ligne :
    java.naming.provider.url=localhost:1099

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 62
    Par défaut
    Address de la machine:port jndi (1099 par défaut)

    A+

  5. #5
    Membre confirmé Avatar de maysam
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 112
    Par défaut
    j'ai crée le fichier jndi.properties mais j'ai toujours la même erreur.
    mon application se présente comme suit:
    src qui contient 2 packages ejb et test.
    ejb conteint les entité,l'interface rmote et la stateless
    test qui contient l'application client et jndi.properties

  6. #6
    Membre confirmé Avatar de maysam
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 112
    Par défaut
    voilà après des heures de recherche sur le net j'ai résolu le problème.
    en faite j'utlisais des versions différentes des jars jboss qui se trouvent dans le classpath du projet.J'ai supprimé tout les jars commençant par jboss et j'ai remis les mêmes mais en allant les chercher dans le fichier client de mon serveur d'application (jboss).

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 62
    Par défaut
    Ok cool
    Par contre, le fichier jndi se met à la racine du src, et non dans un package (sinon il n'est pas lu).

    Je suppose que tu utilises Glassfish non ?

  8. #8
    Membre confirmé Avatar de maysam
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 112
    Par défaut
    non j'utulise jboss-4.2.1.GA

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 09/04/2009, 13h59
  2. [Kylix] Probleme d'execution de programmes...
    Par yopziggy dans le forum EDI
    Réponses: 19
    Dernier message: 03/05/2002, 14h50
  3. [Kylix] Demarrer en cliquant sur l'executable ???
    Par Anonymous dans le forum EDI
    Réponses: 2
    Dernier message: 26/04/2002, 11h24
  4. [Kylix] Execution d'une application hors de l'edi
    Par Sadam Sivaller dans le forum EDI
    Réponses: 1
    Dernier message: 20/04/2002, 23h22
  5. Réponses: 2
    Dernier message: 17/03/2002, 19h00

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