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 :

Accès JNDI à un EJB


Sujet :

Java EE

  1. #1
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2006
    Messages
    958
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 958
    Points : 213
    Points
    213
    Par défaut Accès JNDI à un EJB
    salut,

    voici le problème : je n'arrive pas à appeler via JNDI un EJB.

    j'ai créé un projet EAR qui contient un projet EJB, un projet EJBClient et un projet JPA, tous les 3 peuplés avec des EJB, une classe avec "main", et des entities.

    voici le code d'un EJB:
    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
     
    package ejb.customer;
     
    import(...)
     
    @Stateless
    public class CustomerBean implements CustomerLocal, CustomerRemote {
     
    	@PersistenceContext(unitName="petstorePU")
    	private EntityManager em;
     
     
    	public Customer authenticate(String login, String password) {
    		if (login==null || login.equals(""))
    			throw new ValidationException("Invalid login");
            (...)
    voici le code de la classe cliente:

    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
     
    package source_client;
     
    import javax.naming.Context;
    import javax.naming.InitialContext;
     
    import source.customer.Customer;
     
     
    public class client1 {
     
    	/**
             * @param args
             */
    	public static void main(String[] args) {
     
    		try {
    			Context ctx=new InitialContext();
    			ejb.customer.CustomerRemote rem=(ejb.customer.CustomerRemote) ctx.lookup("ejb.customer.CustomerBean/remote");
    			rem.createCustomer(new Customer(1L,"jambon","rose","jean","bonrause","0018654118","jeanroi@gmail.com",new java.util.Date(1978,02,10),19,null),new source.Address(1,"4 rue des roses","","METZ","Moselle","57000","FRANCE"));
     
     
    			System.out.println ("--- Hello, clients ---");
    			for (source.customer.Customer client : rem.findCustomers()) {
    				System.out.println ("client : "+client);
    			}
     
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
     
     
     
     
     
    	}
     
    }
    et voici le code de jndi.properties, que j'ai placé dans le répertoire des sources du client:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
    java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
    java.naming.provider.url=localhost:1099
    j'ai aussi ajouté un fichier persistence.xml dans le répertoire META-INF du projet EJB:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <persistence>
    	<persistence-unit name="petstore_ejb">
    		<jta-data-source>java:/MySqlDS</jta-data-source>
    		<properties>
    			<property name="hibernate.hbm2ddl.auto" value="update"/>
    			<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
          		<property name="hibernate.show_sql" value="true"/>
    			<property name="hibernate.connection.password" value="petstorepwd"/>
    			<property name="hibernate.connection.username" value="petstorelg"/> 
    		</properties>
    	</persistence-unit>
    </persistence>
    voici la liste des références JNDI de JBOSS, je n'y ai pas trouvé ce qui pourrait être l'EJB:

    Web Applications

    java:comp namespace of the jbossws.sar/jbossws-context.war application:

    +- UserTransaction[link -> UserTransaction] (class: javax.naming.LinkRef)
    +- env (class: org.jnp.interfaces.NamingContext)
    | +- security (class: org.jnp.interfaces.NamingContext)
    | | +- realmMapping[link -> java:/jaas/other] (class: javax.naming.LinkRef)
    | | +- subject[link -> java:/jaas/other/subject] (class: javax.naming.LinkRef)
    | | +- securityMgr[link -> java:/jaas/other] (class: javax.naming.LinkRef)
    | | +- security-domain[link -> java:/jaas/other] (class: javax.naming.LinkRef)


    java:comp namespace of the console-mgr.sar/web-console.war application:

    +- UserTransaction[link -> UserTransaction] (class: javax.naming.LinkRef)
    +- env (class: org.jnp.interfaces.NamingContext)
    | +- security (class: org.jnp.interfaces.NamingContext)
    | | +- realmMapping[link -> java:/jaas/other] (class: javax.naming.LinkRef)
    | | +- subject[link -> java:/jaas/other/subject] (class: javax.naming.LinkRef)
    | | +- securityMgr[link -> java:/jaas/other] (class: javax.naming.LinkRef)
    | | +- security-domain[link -> java:/jaas/other] (class: javax.naming.LinkRef)


    java:comp namespace of the http-invoker.sar/invoker.war application:

    +- UserTransaction[link -> UserTransaction] (class: javax.naming.LinkRef)
    +- env (class: org.jnp.interfaces.NamingContext)
    | +- security (class: org.jnp.interfaces.NamingContext)
    | | +- realmMapping[link -> java:/jaas/jmx-console] (class: javax.naming.LinkRef)
    | | +- subject[link -> java:/jaas/jmx-console/subject] (class: javax.naming.LinkRef)
    | | +- securityMgr[link -> java:/jaas/jmx-console] (class: javax.naming.LinkRef)
    | | +- security-domain[link -> java:/jaas/jmx-console] (class: javax.naming.LinkRef)


    java:comp namespace of the jbossmq-httpil.sar/jbossmq-httpil.war application:

    +- UserTransaction[link -> UserTransaction] (class: javax.naming.LinkRef)
    +- env (class: org.jnp.interfaces.NamingContext)
    | +- security (class: org.jnp.interfaces.NamingContext)
    | | +- realmMapping[link -> java:/jaas/jbossmq] (class: javax.naming.LinkRef)
    | | +- subject[link -> java:/jaas/jbossmq/subject] (class: javax.naming.LinkRef)
    | | +- securityMgr[link -> java:/jaas/jbossmq] (class: javax.naming.LinkRef)
    | | +- security-domain[link -> java:/jaas/jbossmq] (class: javax.naming.LinkRef)


    java:comp namespace of the jboss-web.deployer/ROOT.war application:

    +- UserTransaction[link -> UserTransaction] (class: javax.naming.LinkRef)
    +- env (class: org.jnp.interfaces.NamingContext)
    | +- security (class: org.jnp.interfaces.NamingContext)
    | | +- realmMapping[link -> java:/jaas/other] (class: javax.naming.LinkRef)
    | | +- subject[link -> java:/jaas/other/subject] (class: javax.naming.LinkRef)
    | | +- securityMgr[link -> java:/jaas/other] (class: javax.naming.LinkRef)
    | | +- security-domain[link -> java:/jaas/other] (class: javax.naming.LinkRef)


    java:comp namespace of the jmx-console.war application:

    +- UserTransaction[link -> UserTransaction] (class: javax.naming.LinkRef)
    +- env (class: org.jnp.interfaces.NamingContext)
    | +- security (class: org.jnp.interfaces.NamingContext)
    | | +- realmMapping[link -> java:/jaas/other] (class: javax.naming.LinkRef)
    | | +- subject[link -> java:/jaas/other/subject] (class: javax.naming.LinkRef)
    | | +- securityMgr[link -> java:/jaas/other] (class: javax.naming.LinkRef)
    | | +- security-domain[link -> java:/jaas/other] (class: javax.naming.LinkRef)


    java: Namespace

    +- XAConnectionFactory (class: org.jboss.mq.SpyXAConnectionFactory)
    +- DefaultDS (class: org.jboss.resource.adapter.jdbc.WrapperDataSource)
    +- SecurityProxyFactory (class: org.jboss.security.SubjectSecurityProxyFactory)
    +- DefaultJMSProvider (class: org.jboss.jms.jndi.JNDIProviderAdapter)
    +- MySqlDS (class: org.jboss.resource.adapter.jdbc.WrapperDataSource)
    +- comp (class: javax.naming.Context)
    +- JmsXA (class: org.jboss.resource.adapter.jms.JmsConnectionFactoryImpl)
    +- ConnectionFactory (class: org.jboss.mq.SpyConnectionFactory)
    +- jaas (class: javax.naming.Context)
    | +- HsqlDbRealm (class: org.jboss.security.plugins.SecurityDomainContext)
    | +- jbossmq (class: org.jboss.security.plugins.SecurityDomainContext)
    | +- JmsXARealm (class: org.jboss.security.plugins.SecurityDomainContext)
    +- comp.original (class: javax.namingMain.Context)
    +- timedCacheFactory (class: javax.naming.Context)
    Failed to lookup: timedCacheFactory, errmsg=org.jboss.util.TimedCachePolicy cannot be cast to javax.naming.NamingEnumeration
    +- TransactionPropagationContextExporter (class: com.arjuna.ats.internal.jbossatx.jta.PropagationContextManager)
    +- StdJMSPool (class: org.jboss.jms.asf.StdServerSessionPoolFactory)
    +- Mail (class: javax.mail.Session)
    +- comp.ejb3 (class: javax.naming.Context)
    | NonContext: null
    +- TransactionPropagationContextImporter (class: com.arjuna.ats.internal.jbossatx.jta.PropagationContextManager)
    +- TransactionManager (class: com.arjuna.ats.jbossatx.jta.TransactionManagerDelegate)


    Global JNDI Namespace

    +- TopicConnectionFactory (class: org.jboss.naming.LinkRefPair)
    +- jmx (class: org.jnp.interfaces.NamingContext)
    | +- invoker (class: org.jnp.interfaces.NamingContext)
    | | +- RMIAdaptor (proxy: $Proxy47 implements interface org.jboss.jmx.adaptor.rmi.RMIAdaptor,interface org.jboss.jmx.adaptor.rmi.RMIAdaptorExt)
    | +- rmi (class: org.jnp.interfaces.NamingContext)
    | | +- RMIAdaptor[link -> jmx/invoker/RMIAdaptor] (class: javax.naming.LinkRef)
    +- HTTPXAConnectionFactory (class: org.jboss.mq.SpyXAConnectionFactory)
    +- ConnectionFactory (class: org.jboss.mq.SpyConnectionFactory)
    +- UserTransactionSessionFactory (proxy: $Proxy14 implements interface org.jboss.tm.usertx.interfaces.UserTransactionSessionFactory)
    +- HTTPConnectionFactory (class: org.jboss.mq.SpyConnectionFactory)
    +- XAConnectionFactory (class: org.jboss.mq.SpyXAConnectionFactory)
    +- TransactionSynchronizationRegistry (class: com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionSynchronizationRegistryImple)
    +- UserTransaction (class: org.jboss.tm.usertx.client.ClientUserTransaction)
    +- UILXAConnectionFactory[link -> XAConnectionFactory] (class: javax.naming.LinkRef)
    +- UIL2XAConnectionFactory[link -> XAConnectionFactory] (class: javax.naming.LinkRef)
    +- queue (class: org.jnp.interfaces.NamingContext)
    | +- A (class: org.jboss.mq.SpyQueue)
    | +- testQueue (class: org.jboss.mq.SpyQueue)
    | +- ex (class: org.jboss.mq.SpyQueue)
    | +- DLQ (class: org.jboss.mq.SpyQueue)
    | +- D (class: org.jboss.mq.SpyQueue)
    | +- C (class: org.jboss.mq.SpyQueue)
    | +- B (class: org.jboss.mq.SpyQueue)
    +- topic (class: org.jnp.interfaces.NamingContext)
    | +- testDurableTopic (class: org.jboss.mq.SpyTopic)
    | +- testTopic (class: org.jboss.mq.SpyTopic)
    | +- securedTopic (class: org.jboss.mq.SpyTopic)
    +- console (class: org.jnp.interfaces.NamingContext)
    | +- PluginManager (proxy: $Proxy48 implements interface org.jboss.console.manager.PluginManagerMBean)
    +- UIL2ConnectionFactory[link -> ConnectionFactory] (class: javax.naming.LinkRef)
    +- HiLoKeyGeneratorFactory (class: org.jboss.ejb.plugins.keygenerator.hilo.HiLoKeyGeneratorFactory)
    +- UILConnectionFactory[link -> ConnectionFactory] (class: javax.naming.LinkRef)
    +- QueueConnectionFactory (class: org.jboss.naming.LinkRefPair)
    +- UUIDKeyGeneratorFactory (class: org.jboss.ejb.plugins.keygenerator.uuid.UUIDKeyGeneratorFactory)







    olivier.

  2. #2
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2006
    Messages
    958
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 958
    Points : 213
    Points
    213
    Par défaut
    j'oubliais : voici le message d'erreur : "javax.naming.NameNotFoundException: CustomerBean not bound"

  3. #3
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2006
    Messages
    958
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 958
    Points : 213
    Points
    213
    Par défaut
    j'ai maintenant les EJB qui sont déployés via JNDI : voici un extrait de la page JNDIView sur la page web de JBOSS :

    Global JNDI Namespace

    +- petstore_ear (class: org.jnp.interfaces.NamingContext)
    | +- CustomerBean (class: org.jnp.interfaces.NamingContext)
    | | +- local (proxy: $Proxy95 implements interface ejb.customer.CustomerLocal,interface org.jboss.ejb3.JBossProxy)
    | | +- remote (proxy: $Proxy94 implements interface ejb.customer.CustomerRemote,interface org.jboss.ejb3.JBossProxy)
    | +- OrderSB (class: org.jnp.interfaces.NamingContext)
    | | +- local (proxy: $Proxy99 implements interface ejb.order.OrderLocal,interface org.jboss.ejb3.JBossProxy)
    | | +- remote (proxy: $Proxy98 implements interface ejb.order.OrderRemote,interface org.jboss.ejb3.JBossProxy)
    | +- CatalogSB (class: org.jnp.interfaces.NamingContext)
    | | +- local (proxy: $Proxy91 implements interface ejb.catalog.CatalogLocal,interface org.jboss.ejb3.JBossProxy)
    | | +- remote (proxy: $Proxy90 implements interface ejb.catalog.CatalogRemote,interface org.jboss.ejb3.JBossProxy)
    +- TopicConnectionFactory (class: org.jboss.naming.LinkRefPair)
    +- jmx (class: org.jnp.interfaces.NamingContext)
    | +- invoker (class: org.jnp.interfaces.NamingContext)
    | | +- RMIAdaptor (proxy: $Proxy47 implements interface org.jboss.jmx.adaptor.rmi.RMIAdaptor,interface org.jboss.jmx.adaptor.rmi.RMIAdaptorExt)
    | +- rmi (class: org.jnp.interfaces.NamingContext)
    | | +- RMIAdaptor[link -> jmx/invoker/RMIAdaptor] (class: javax.naming.LinkRef)
    +- persistence.units:ear=petstore_ear.ear,jar=petstore_ejb.jar,unitName=petstorePU (class: org.hibernate.impl.SessionFactoryImpl)
    mais je n'arrive toujours pas à m'y connecter avec le classe client : regardez la photo, on y voit que l'EJB est déployé et l'appel refusé.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 73
    Points : 61
    Points
    61
    Par défaut
    Salut olivier57b, aurais-tu résolu ton problème...?

    Ca m'intéresse !

    Je suis la même voie que toi, à savoir que je me mets à JEE en suivant le livre d'A. Goncalves.

    J'en suis encore à essayer de comprendre comment reprendre l'arborescence de l'application dans un Enterprise Application Project sous Eclipse...

Discussions similaires

  1. Lookup JNDI d'EJB et Maven
    Par mid491 dans le forum Java EE
    Réponses: 7
    Dernier message: 04/03/2011, 09h49
  2. [JNDI] Premier EJB
    Par chady dans le forum Wildfly/JBoss
    Réponses: 4
    Dernier message: 08/02/2010, 17h45
  3. [JAAS] acces a un ejb 3 par un user et mot de passe
    Par lamnaourS dans le forum Java EE
    Réponses: 1
    Dernier message: 23/08/2007, 12h39
  4. [8.1] Accès JNDI distant dans une appli Web
    Par fedfil dans le forum Weblogic
    Réponses: 1
    Dernier message: 22/12/2006, 16h56
  5. Accès JNDI Websphere 6 et JRE SUN
    Par tominfo dans le forum Websphere
    Réponses: 1
    Dernier message: 13/09/2006, 13h27

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