Envoyé par Stessy
Je vais regarder de mon coté avec ce que tu m'as envoyé.
Envoyé par Stessy
Je vais regarder de mon coté avec ce que tu m'as envoyé.
Je viens de voir ceci dans ton code:
HelloWorldClient.java:
jonas-ejb-jar.xml:home = (HelloWorldHome)PortableRemoteObject.narrow(initialContext.lookup("MyHelloWorld"), HelloWorldHome.class);
C'est le petit détail qui doit tuer. Tu peux faire le test?<jndi-name></jndi-name>myHelloWorld
En effet c'est vraiment le p'tit p'tit p'tit truc qui tue, à en devenirEnvoyé par request
Juste encore une petite remarque quand je lance le client avant d'avoir le résultat affiché
Si tu savais un peu m'éclairer ce serait sympa.2003-10-01 19:10:19,000 : JStatelessFactory.createNewInstance : HelloWorld cannot call ejbCreate on Stateless Session
Si j'ai bien compris cela veux dire qu'HelloWorld ne peut pas appeler ejbCreate() dans l'EJB (HelloWorldBean) dans une session sans état.
Merci oh maître vénéré
bon ok je
Un conseil suit scrupuleusement ce que request a fait, crée les mêmes répertoires que lui ainsi tu y verra un peu plus clair et au besoin je saurai t'aider car cela fait 24 heures que je suis dessus donc je commence à le connaître, mais juste cet exercice.Envoyé par FreshVic
En fait je vais laisser un peu souffler request car il en a bavé avec moi depuis hier
Donc pour résumer, recommence l'exercice en suivant à la lettre ce que fait request et dire à quel moment ça foire. C'est comme ça qu'on s'en est sorti.
Bon voilà, c'est un bon début.Envoyé par Stessy
Pour ton petit problème:
il te manque dans HelloWorldBean.java
autre remarque:
Code : Sélectionner tout - Visualiser dans une fenêtre à part public void ejbCreate() throws CreateException {}
toujours dans la même classe, je vois ici:
Ce type de code s'applique à des anciennes specs, la RemoteException ne doit plus être propagé maintenant dans le bean./* (non-Javadoc)
* @see javax.ejb.SessionBean#ejbRemove()
*/
public void ejbRemove() throws EJBException, RemoteException {
// TODO Auto-generated method stub
}
Ton code devrait ressemblé à ceci:
C'est Lomboz qui génére ce type de code?
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 package sb; import java.rmi.RemoteException; import javax.ejb.SessionBean; import javax.ejb.SessionContext; public class HelloWorldBean implements SessionBean { SessionContext sessionContext; public String sayHelloWorld() { return "Bonjour le Monde!"; } public void ejbCreate() throws CreateException {} public void ejbRemove() {} public void ejbActivate() {} public void ejbPassivate() {} public void setSessionContext(SessionContext sessionContext) { this.sessionContext = sessionContext; } }
Bon, il te reste à gouter au statefull (pas trop d'interet) et aux CMP (là ca va se gater )
Non pas du tout j'ai suivi l'exemple du tuto.Envoyé par request
Peut-être que je me trompe mais ce tuto a été fait du temps de l'ancienne spec
Envoyé par request
Pourquoi le satefull n'a pas grand interêt?
Maintenant j'installe ma DB utilisée pour mon projet de fin d'étude et je commence.
J'espère que tu es fin prêt parce que je sens que tu vas en baver avec moi
Déjà 24 heures pour mon premier EJB, ca promet pour les autres
Heu... de quel tuto que tu parles alors je pensais que c'était celui de ashita studio?Envoyé par Stessy
Le statefull et identique au stateless sauf qu'il va pouvoir conserver son état entre deux appels différents. Donc cela devrait être facile pour toi maitenantEnvoyé par Stessy
Il est très peu utilisé, c'est rare d'avoir besoin de ce mécanisme.
Je suis pret 8)Envoyé par Stessy
Me revoila toujours sans resultat mais je desespere pas
Quand fait comme dans la manip proposer par request et quand j'execute le client donc quand je fais :
j'obtiens l'erreur suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 C:\java\Dev\Build>java -cp .;sb\HelloWorld.jar;%JONAS_ROOT%\lib\jonas.jar;%JONAS _ROOT%\lib\client.jar -Djavax.rmi.CORBA.PortableRemoteObjectClass=org.objectweb. carol.rmi.multi.MultiPRODelegate -Djava.naming.factory.initial=org.objectweb.car ol.jndi.spi.MultiOrbInitialContextFactory -Dorg.omg.PortableInterceptor.ORBIniti alizerClass.org.objectweb.jonas_tm.ots.OTSORBInitializer -Dorg.omg.PortableInter ceptor.ORBInitializerClass.org.objectweb.jonas.security.interceptors.iiop.Securi tyInitializer -Djava.security.auth.login.config=%JONAS_ROOT%\conf\jaas.config sb.HelloWorldClient
ou cette classe qu'il ne trouve pas ??
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Impossible d'accÚder au contexte JNDI : javax.naming.NoInitialContextException: Cannot instantiate class: org.objectweb.carol.jndi.spi.MultiOrbInitialContextFac tory [Root exception is java.lang.ClassNotFoundException: org.objectweb.carol.jn di.spi.MultiOrbInitialContextFactory]
UML avec VIOLET
Elle se trouve dans %JONAS_ROOT%\lib\jonas.jar
Fait un:
et donne moi le résultat.
Code : Sélectionner tout - Visualiser dans une fenêtre à part echo %JONAS_ROOT%\lib\jonas.jar
As tu la variable JONAS_ROOT renségniée?
Il n'y aurrai pas des espaces dans les noms de répertoire?
Un conseil fais exactement ce que request dit en recréant les répertoires qu'il a utilisé, car moi cela ne fonctionnait pas avec le tuto sur ashita-studio.Envoyé par request
Crée un script avec les commandes citées ci-dessus.
Un conseil vérifie bien ces 2 lignes:
dans HelloWorldClient
dans le descripteur jonas-ejb-jar.xml
Code : Sélectionner tout - Visualiser dans une fenêtre à part home = (HelloWorldHome)PortableRemoteObject.narrow(initialContext.lookup("myHelloWorld"), HelloWorldHome.class);
car moi c'est de là que venait mon erreur, du contexte
Code : Sélectionner tout - Visualiser dans une fenêtre à part <jndi-name>myHelloWorld</jndi-name>
Regarde à ce que les 2 myHelloWorld soient les mêmes
Un conseil fais exactement ce que request dit en recréant les répertoires qu'il a utilisé, car moi cela ne fonctionnait pas avec le tuto sur ashita-studio.Envoyé par request
Crée un script avec les commandes citées ci-dessus.
Un conseil vérifie bien ces 2 lignes:
dans HelloWorldClient
dans le descripteur jonas-ejb-jar.xml
Code : Sélectionner tout - Visualiser dans une fenêtre à part home = (HelloWorldHome)PortableRemoteObject.narrow(initialContext.lookup("myHelloWorld"), HelloWorldHome.class);
car moi c'est de là que venait mon erreur, du contexte
Code : Sélectionner tout - Visualiser dans une fenêtre à part <jndi-name>myHelloWorld</jndi-name>
Regarde à ce que les 2 myHelloWorld soient les mêmes.
Je ne me pose même pas la question de savoir pourquoi cela ne fonctionne pas avec les commandes de jonas.
Il est vrai que je persiste avec mes vieux nom de repertoire issue du tutoriale.
Enfin bon suite a la commande
j'obtiens:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 echo %JONAS_ROOT%\lib\jonas.jar
Mais je n'ai rien d'autre qu'un repertoire common et un repertoire ext dans lib?????
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2C:\java\plateforme\jonas\JOnAS-3.2\lib\jonas.jar
UML avec VIOLET
Chez moi MultiOrbInitialContextFactory ne se trouve pas dans jonas.jar mais dans carol.jar qui se situe dans %JONAS_ROOT%\lib\common\carol
Je l'ai donc rajoute dans le CP.
Mais maintenant il me dit qu'il n'arrive pas a trouve HelloWorldHome javax.naming.NamingException.
Alors jusqu'a present je n'avais pas fait attention mais quand je fait
ce n'est pas myHelloWorld que je voi apparaitre mais HelloWorldHome donc l'objet plutot que le nom qui lui est associe????
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 jonas start admin -j
est ce normal?????????
UML avec VIOLET
De plus g bien verifie les "myHelloWorld " de la classe client et du fichier xml.
Je les ai bien rectifier de façon a ce qu'il soit identique???
UML avec VIOLET
C'est la fête
C'est un peu la quatrième dimension là....
Je pense que nous n'avons pas la même version de JOnAS.
Celle que j'ai utilisée: JOnAS-3.2-Tomcat
Vu que j'ai donnée les lignes de commande complète cela peut poser des problèmes en travaillant avec des versions différentes
Un bon conseil essaye d'utiliser la même version.
Voici un excellent article dédié à l'installation de jonas sur une plateforme windows
http://request.developpez.com/j2ee/j...stall/windows/
ou alors tu as le même article pour une plate forme linux
http://request.developpez.com/j2ee/j...install/linux/
Je ne me suis pas soucié de la description de l'installation sur le site où se trouve le tutorial.
Je travaille pourtant avec Jonas3.2 la différence c'est que j'avais deja tomcat et que je n'est donc pas pris Jonas et Tomcat dans le meme package je me suis contenter de Jonas.Mais il me semblai que le tout fonctionnait puisque le serveur demarrai correctement ????
UML avec VIOLET
Enfin un point positif j'ai reussi a faire fonctionner mon HelloWorld .
Le probleme c'est que j'ai du bidouiller il ne fonctionne pas comme il devrait!!!!
En effet comme je l'ai deja dit dans ma liste des nom jndi je n'ai pas myHelloWorld mais j'ai
et ceux quelque soit la version de Jonas j'ai essaye la 3.1 ,3.2 et maintenant j'ai la 3.3.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 ... HelloWorldHome ...
Je me suis amuser a modifier le jonas-ejb-jar.xml en modifiant le ejb-name et/ou le jndi-name et meme si ils n'ont aucun rapport avec les classes HelloWorld il s'en fou et construit quand meme le .jar.
Ce qui veux dire qu'il ne se base pas sur le xml pour construire son annuaire JNDI.
Sinon pour le faire fonctionner puisque le nom JNDI de ma classe local est HelloWorldHome bah j'ai modifier la classe client comme cela:
Voila
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 home = (HelloWorldHome)PortableRemoteObject.narrow(initialContext.lookup("HelloWorldHome"), HelloWorldHome.class);
je doit avouer que j'y comprend rien et que sa me frustre un petit peu si quelqu'un a une idée de se que je fais de travers je suis prenneur!!!!
Mais deja Merci a vous stessy et request d'avoir traiter le sujet aussi clairement
UML avec VIOLET
J'avoue ne pas très bien comprendre non plus.
Je suis frustré comme toi car à part ce que nous devons faire, rien d'autre n'est expliqué sur le "comment ça fonctionne", ....
Ici je suis en train de lire un autre tuto, mais ce tuto traite de l'utilisation de jboss avec eclipse et lomboz.
Mais cela ne m'éclaire pas plus du "comment ca fonctionne", tu suis ce qu'il dit et en fait les classes sont générées automatiquement par xdoclet.
J'en suis à mon 2ème exercice et je ne comprends toujours pas. Oui cela fonctionne, mon ejb est déployé et il me retourne une phrase du style "vous avez réussi à déployer votre premier ejb, félicitations"
Félicitations de quoi, d'avoir su déployer sans rien y comprendre .
Ca tout le monde sait le faire
Moi ce que j'aimerais c'est savoir comment tout fonctionne.
Donc si tu as des tuto qui explique le focntionnement général, ils sont les bienvenus.
En plus que chaque serveur d'application à ses propres règles de génération et de déploiement, on n'est pas sorti de l'auberge.
Tu n'aurrai pas un autre jar déployé dans Joans?
Sinon ... Envoi moi ton jar, je ferrai le test sur mon serveur
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager