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

Websphere Java Discussion :

[EJB]Utilisation d'EJB entité CMP 2.x avec Websphere 6


Sujet :

Websphere Java

  1. #1
    Candidat au Club
    Inscrit en
    Avril 2004
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 4
    Points : 3
    Points
    3
    Par défaut [EJB]Utilisation d'EJB entité CMP 2.x avec Websphere 6
    Je suis entrain d'apprendre à programmer des ejbs et plus particulièrement des EJB entity CMP 2.x avec websphere 6. et pour l'instant je me casse la tête dessus sans trouver de solution. J'ai suivi toutes les instructions pour créer une tel ejb. (j'utilise éclipse J2EE).
    je dispose de 4 classes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    User
    UserHome
    UserBeam
    UserPK
    mon EJB doit accéder à une base de données MySQL qui possède un nom JNDI dans mon serveur : jdbc/mysqlNico
    voici le contenu de mon 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
    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
     
    <?xml version="1.0" encoding="UTF-8"?>
    <ejb-jar id="ejb-jar_ID"
              xmlns="http&#58;//java.sun.com/xml/ns/j2ee"
    	    xmlns&#58;xsi="http&#58;//www.w3.org/2001/XMLSchema-instance"
    	    xsi&#58;schemaLocation="http&#58;//java.sun.com/xml/ns/j2ee
    	    http&#58;//java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd"
    	    version="2.1">
    	<description>Mon premier EJB simple</description>
    	<display-name>AzurMenuiserieEJB</display-name>
    	<enterprise-beans>
          <entity id="ContainerManagedEntity_1">
          	<description>User CMP 2.0</description>
          	<display-name>User1 access CMP 2.0</display-name>
          	<ejb-name>User1</ejb-name>
          	<local-home>com.nico.user2x.UserHome</local-home>
          	<local>com.nico.user2x.User</local>
          	<ejb-class>com.nico.user2x.UserBean</ejb-class>
          	<persistence-type>Container</persistence-type>
          	<prim-key-class>com.nico.user2x.UserPK</prim-key-class>
          	<reentrant>false</reentrant>
          	<cmp-version>2.x</cmp-version>
          	<abstract-schema-name>user1</abstract-schema-name>
          	<cmp-field>
          		<field-name>userid</field-name>
          	</cmp-field>
          	<cmp-field>
          		<field-name>firstname</field-name>
          	</cmp-field>
          	<cmp-field>
          		<field-name>lastname</field-name>
          	</cmp-field>
          	<cmp-field>
          		<field-name>login</field-name>
          	</cmp-field>
          	<cmp-field>
          		<field-name>password</field-name>
          	</cmp-field>
          </entity>
    	</enterprise-beans>
    	<assembly-descriptor>
    	    <method-permission>
    	    	<description>User1 permissions</description>
    	    	<unchecked/>
    	    	<method>
    	    		<ejb-name>User1</ejb-name>
    	    		<method-name>*</method-name>
    	    	</method>
    	    </method-permission>
    	 </assembly-descriptor>
    </ejb-jar>
    tout ceci est contenu dans une archive JAR pour ejb que j'ai déployé dans mon application, websphere.
    J'essaye d'accéder à cet ejb via un JSP contenu dans un module Web.
    voici son web.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"?>
    <web-app xmlns="http&#58;//java.sun.com/xml/ns/j2ee" xmlns&#58;xsi="http&#58;//www.w3.org/2001/XMLSchema-instance" id="WebApp_ID" version="2.4" xsi&#58;schemaLocation="http&#58;//java.sun.com/xml/ns/j2ee http&#58;//java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    	<display-name>NicoWeb</display-name>
    	<welcome-file-list>
    	...
    	</welcome-file-list>
    	<ejb-local-ref id="EjbRef_1126088135893">
    		<ejb-ref-name>User1</ejb-ref-name>
    		<ejb-ref-type>Entity</ejb-ref-type>
    		<local-home>com.nico.user2x.UserHome</local-home>
    		<local>com.nico.user2x.User</local>
    	</ejb-local-ref>
    </web-app>
    pour accèder à mon ejb, je fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Context ctxt=new InitialContext&#40;&#41;;
    Object objref=ctxt.lookup&#40;"User1"&#41;;
    Et là, ça plante :
    EJB error : Context: geoNode01Cell/nodes/geoNode01/servers/server1, name: User1: First component in name User1 not found.

    com.ibm.ws.naming.jndicos.CNContextImpl.processNotFoundException(CNContextImpl.java:4394)
    com.ibm.ws.naming.jndicos.CNContextImpl.doLookup(CNContextImpl.java:1784)
    com.ibm.ws.naming.jndicos.CNContextImpl.doLookup(CNContextImpl.java:1737)
    com.ibm.ws.naming.jndicos.CNContextImpl.lookupExt(CNContextImpl.java:1444)
    com.ibm.ws.naming.jndicos.CNContextImpl.lookup(CNContextImpl.java:1324)
    com.ibm.ws.naming.util.WsnInitCtx.lookup(WsnInitCtx.java:144)
    javax.naming.InitialContext.lookup(InitialContext.java:361)
    com.ibm._jsp._test._jspService(_test.java:94)
    com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:88)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1212)
    com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:629)
    com.ibm.wsspi.webcontainer.servlet.GenericServletWrapper.handleRequest(GenericServletWrapper.java:117)
    com.ibm.ws.jsp.webcontainerext.JSPExtensionServletWrapper.handleRequest(JSPExtensionServletWrapper.java:171)
    com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:80)
    com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:1657)
    com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:77)
    com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:421)
    com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:367)
    com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:94)
    com.ibm.ws.tcp.channel.impl.WorkQueueManager.requestComplete(WorkQueueManager.java:548)
    com.ibm.ws.tcp.channel.impl.WorkQueueManager.attemptIO(WorkQueueManager.java(Compiled Code))
    com.ibm.ws.tcp.channel.impl.WorkQueueManager.workerRun(WorkQueueManager.java:934)
    com.ibm.ws.tcp.channel.impl.WorkQueueManager$Worker.run(WorkQueueManager.java:1021)
    com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1332)
    bref, il n'a pas l'air de trouver mon EJB alors qu'il est bien présent dans la liste de mes ejb dans ma console d'admin avec le nom : User1
    J'ai testé plein de possibilités : rien ne marche. Je ne sais plus quoi faire. Est-ce que quelqu'un saurait-il s'il me manque qqc?

    Merci pour tous conseils?

    Majenior



    [Modéré par Didier] : ajout de tag dans le titre - Les règles du forum Java

  2. #2
    Candidat au Club
    Inscrit en
    Avril 2004
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 4
    Points : 3
    Points
    3
    Par défaut [Résolu]LA réponse est toute simple
    l'erreur est dans le code d'appel de l'EJB. J'ai oublié de mettre devant le nom de mon EJB : java:com/env

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Context ctxt=new InitialContext&#40;&#41;; 
    ClassHome home=&#40;ClassHome&#41;ctxt.lookup&#40;"java&#58;comp/env/User1"&#41;;
    bref, dans les ejbs 1.1, j'ai l'impression que ce n'est pas obligé. En tout cas, chez moi, ça ne marche pas, mais pour lesEJB2.0, il faut spécifier "java:comp/env/".

    Si qqn a plus d'infos sur tout ça, je suis prenneur!!

  3. #3
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 882
    Points : 948
    Points
    948
    Par défaut Re: [Résolu]LA réponse est toute simple
    Citation Envoyé par majenior
    l'erreur est dans le code d'appel de l'EJB. J'ai oublié de mettre devant le nom de mon EJB : java:com/env

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Context ctxt=new InitialContext&#40;&#41;; 
    ClassHome home=&#40;ClassHome&#41;ctxt.lookup&#40;"java&#58;comp/env/User1"&#41;;
    bref, dans les ejbs 1.1, j'ai l'impression que ce n'est pas obligé. En tout cas, chez moi, ça ne marche pas, mais pour lesEJB2.0, il faut spécifier "java:comp/env/".

    Si qqn a plus d'infos sur tout ça, je suis prenneur!!
    en fait dans les ejb 2.x pour faire un lookup, tu as deux cas
    1/ Cas ou ton ejb est un ejb local
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Context ctxt=new InitialContext&#40;&#41;; 
    ClassHome home=&#40;ClassHome&#41;ctxt.lookup&#40;"java&#58;comp/env/ejbName"&#41;;
    2/Cas ou ton ejb est un ejb remote
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Context ctxt=new InitialContext&#40;&#41;; 
    ClassHome home=&#40;ClassHome&#41;ctxt.lookup&#40;"ejbName"&#41;;

    Sun Certified Business Component Developer
    Sun Certified Java Programmer
    --
    The definitive toolbox for GWT applications: gwt-toolbox
    My blog about Java and JEE: Benjamin's Blog

  4. #4
    Candidat au Club
    Inscrit en
    Avril 2004
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Super MERCI!!!

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

Discussions similaires

  1. [EJB] Utilisation des EJB en grand nombre
    Par Romz82 dans le forum Java EE
    Réponses: 14
    Dernier message: 22/03/2013, 22h15
  2. EJB Entité CMP 2.1 et JBOSS 5
    Par jmmalain dans le forum Wildfly/JBoss
    Réponses: 1
    Dernier message: 11/10/2010, 15h58
  3. [EJB] [Débutant] [JBoss] Utiliser un EJB isolé
    Par zsoh dans le forum Java EE
    Réponses: 4
    Dernier message: 10/07/2007, 15h35
  4. [EJB2.1 Entity] EJB Entite CMP et sequence Oracle
    Par kaiser2003 dans le forum Java EE
    Réponses: 5
    Dernier message: 11/03/2006, 11h42
  5. [EJB][JONAS] EJB utilisant une classe "externe"
    Par Gregory3000 dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 13/12/2004, 20h57

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