Partage
  • Partager sur Facebook
  • Partager sur Twitter

EJB3 - Eclipse

Sujet résolu
    17 mars 2012 à 22:16:19

    Bonsoir ,

    SVP j'ai un petit soucis avec un simple exemple d'EJB3

    Mon EJB

    /*interface*/
    package com.et;
    
    import javax.ejb.Local;
    import javax.ejb.Remote;
    
    @Remote
    
    public interface PremierEJB3 {
    	public String ditBonjour(String aQui);
    }
    

    Le bean
    package com.et;
    
    
    import javax.ejb.Stateless;
    
    @Stateless
    public class PremierEJB3Bean implements PremierEJB3{
    
    	@Override
    	public String ditBonjour(String aQui) {
    		System.out.println("Bonjour" + aQui);
    		return null;
    	}
    
    }
    


    Le client

    package com.et;
    
    import javax.naming.Context;
    import javax.naming.InitialContext;
    import javax.naming.NamingException;
    
    public class ClientPremierEJB3 {
    
       public static void main(String[] args) {
          try {
             Context context = new InitialContext();
             PremierEJB3 beanRemote = (PremierEJB3)
             context.lookup("com.et.PremierEJB3Bean/remote");
             System.out.println(beanRemote.ditBonjour("ClientPremierEJB3"));
          } catch (NamingException e) {
             e.printStackTrace();
          }
       }
    }
    


    Et voila le message d'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
    	at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:645)
    	at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
    	at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:325)
    	at javax.naming.InitialContext.lookup(InitialContext.java:392)
    	at com.et.ClientPremierEJB3.main(ClientPremierEJB3.java:14)
    



    La solution : Modification au niveau de client

    package com.et;
    
    import java.util.Properties;
    
    import javax.naming.Context;
    import javax.naming.InitialContext;
    import javax.naming.NamingException;
    
    public class ClientPremierEJB3 {
    
       public static void main(String[] args) {
    	   Properties props = new Properties();     
          try {
        	  
        	  
        	        
              props.setProperty(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");
               props.setProperty(Context.PROVIDER_URL, "localhost:1099");
               props.setProperty(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces"); 
    	    	  
    	    	  //System.out.println("***************************la");
    	   InitialContext context = new InitialContext(props);
    	   System.out.println("2");
             PremierEJB3 beanRemote = (PremierEJB3)
             context.lookup("PremierEJB3Bean/remote");
             System.out.println("3");
             System.out.println(beanRemote.ditBonjour("Amine"));
          } catch (NamingException e) {
             e.printStackTrace();
          }
       }
    }
    
    • Partager sur Facebook
    • Partager sur Twitter

    EJB3 - Eclipse

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown