Tu peux m'envoyer le .jar pour que je fasse le testEnvoyé par Stessy
Tu peux m'envoyer le .jar pour que je fasse le testEnvoyé par Stessy
Je te l'ai envoyé.
Pourtant j'ai tout recompîlé et j'ai de nouveau le même problème.
Je viens de suivre le tuto que vous avez lu, il y a de nombreuses boulettes, je comprends mieux pourquoi vous avez eu du mal.Envoyé par Stessy
Moi, j'avais utilisé JBuilder avec Kelly (l'open tools de Jonas), donc, la compilation, le genic, le déploiement sont pris en charge... il n'y a pas photo!
En suivant le même tuto, j'ai fini par avoir également une erreur d'enregistrement dans le JNDI alors que mon exemple quasi identique fonctionne...
Je regarderai cela ce soir si j'ai le temps.
A+
J'ai eu le temps, il me manquai un petit qq chose
Explication en détail:
Mon environnement:
Démarage de JOnAS:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 set java_home=c:\java\JBuilder9\jdk1.4 set ant_home=c:\java\ant set jonas_root=C:\java\JOnAS-3.2
%JONAS_ROOT%\bin\nt\jonas start
Le projet
Sur C:\tmp\HelloWorld
\bin => Répertoire du HelloWorld.jar (vide au début)
\classes => Résultat de compilation (vide au début)
\META-INF => Les déscripteurs de déploiement (ejb-jar.xml et jonas-ejb-jar.xml)
\src\sb => Les 4 fichiers java (L'EJB + le client)
Le début
La compilation
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 cd C:\tmp\HelloWorld %JONAS_ROOT%\bin\nt\setenv.bat
A ce niveau le répertoire classes doit contenir sb\ et 4 fichiers classes
Code : Sélectionner tout - Visualiser dans une fenêtre à part %JAVAC% -classpath %JONAS_ROOT%\lib\common\j2ee\ejb.jar;%JONAS_ROOT%\lib\common\j2ee\jta-spec1_0_1.jar -d ./classes src\sb\HelloWorld.java src\sb\HelloWorldHome.java src\sb\HelloWorldBean.java src\sb\HelloWorldClient.java
La fabrication du jar
En prenant en compte les classes et les descripteurs
A ce niveau le répertoire bin doit contenir le fichier .jar
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 %JAVA_HOME%\bin\jar cvf bin\HelloWorld.jar META-INF\ejb-jar.xml META-INF\jonas-ejb-jar.xml cd classe %JAVA_HOME%\bin\jar uvf ..\bin\HelloWorld.jar sb\HelloWorld.class sb\HelloWorldBean.class sb\HelloWorldHome.class cd ..
La génération des Stubs/Skeleton
Le .jar est modifié avec l'ajout des Stubs/Skeleton pour la communication réseau.
Code : Sélectionner tout - Visualiser dans une fenêtre à part %JAVA% -cp %JONAS_ROOT%\lib\common\ow_jonas_bootstrap.jar;%JONAS_ROOT%\conf -Dinstall.root=%JONAS_ROOT% -Djonas.base=%JONAS_ROOT% -Djava.security.policy=%JONAS_ROOT%\conf\java.policy -Dobjectweb.orb= org.objectweb.jonas.server.Bootstrap org.objectweb.jonas_ejb.genic.GenIC bin\HelloWorld.jar
Déploiement
Activation à chaud
Code : Sélectionner tout - Visualiser dans une fenêtre à part copy bin\HelloWorld.jar %JONAS_ROOT%\ejbjars\
sur la console doit apparaitre:
Code : Sélectionner tout - Visualiser dans une fenêtre à part %JONAS_ROOT%\bin\nt\jonas.bat admin -a HelloWorld.jar
On peut vérifier les JNDI déployés :
Code : Sélectionner tout - Visualiser dans une fenêtre à part >JContainer.addBean : HelloWorld available
qui doit afficher
Code : Sélectionner tout - Visualiser dans une fenêtre à part %JONAS_ROOT%\bin\nt\jonas.bar admin j
Execution du client
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 ... >myHelloWorld ...
qui doit affichier:
Code : Sélectionner tout - Visualiser dans une fenêtre à part %JAVA% -cp classes;bin\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.carol.jndi.spi.MultiOrbInitialContextFactory -Dorg.omg.PortableInterceptor.ORBInitializerClass.org.objectweb.jonas_tm.ots.OTSORBInitializer -Dorg.omg.PortableInterceptor.ORBInitializerClass.org.objectweb.jonas.security.interceptors.iiop.SecurityInitializer -Djava.security.auth.login.config=C:\java\JOnAS-3.2\conf\jaas.config sb.HelloWorldClient
Voilà
Code : Sélectionner tout - Visualiser dans une fenêtre à part Bonjour le Monde!
Si vous déployez sur une autre machine, il faut modifier le fichier carol.properties
L'utilisation de shell de JONAS plutot que les commandes complète est également possible.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2# RMI JRMP URL carol.jrmp.url=rmi://localhost:1099
Bon courrage.
Ca dois surement être génial quand ca fonctionne mais cela ne fonctionne toujours pas
Toujours le problème de l'interface locale.
A mon avis je dois être un gros
C'est où (à quel étape) que cela ne marche plus?
Tu as des traces, des messages?
A la génération des stub/skeleton
A chaque fois j'ai des erreurs comme quoi il ne trouve pas les descripteurs de déploiement
Voici l'erreur en entier
Et je viens de remarquer que je suis de nouveau un grosCommande tapée
C:\tmp\HelloWorld>%JAVA% -cp %JONAS_ROOT%\lib\common\ow_jonas_bootstrap.jar;%JON
AS_ROOT%\conf -Dinstall.root=%JONAS_ROOT% -Djonas.base=%JONAS_ROOT% -Djava.secur
ity.policy=%JONAS_ROOT%\conf\java.policy -Dobjectweb.orb= org.objectweb.jonas.se
rver.Bootstrap org.objectweb.jonas_ejb.genic.GenIC bin\HelloWorld.jar
Erreur générée
GenIC fatal error: Cannot read the Deployment Descriptors from bin\HelloWorld.ja
r: Home class not found for bean HelloWorld: helloWorld.HelloWorldHome
org.objectweb.jonas_ejb.genic.GenIC error: java.lang.reflect.InvocationTargetExc
eption
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.objectweb.jonas.server.Bootstrap.main(Bootstrap.java:351)
Caused by: java.lang.RuntimeException: Cannot read the Deployment Descriptors fr
om bin\HelloWorld.jar: Home class not found for bean HelloWorld: helloWorld.Hell
oWorldHome
at org.objectweb.jonas_ejb.genic.GenIC.fatalError(GenIC.java:879)
at org.objectweb.jonas_ejb.genic.GenIC.main(GenIC.java:429)
... 5 more
J'ai oublié de modifier le fichier xml, j'avais laissé dans certaines balises le package helloWorld au lieu de mettre sb
Vive l'apprentissage
Je recommence pour la n ième fois
je te tiens au courant
Toujours pas
Problème à l'exécution du client
Toujours le même problèmeImpossible de trouver HelloWorldHome
Vérifie ton ejb-jar.xml:
Si c'est bon, vérifie avec winzip que ton .jar contient sb/HelloWorldHome.class
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 <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd"> <ejb-jar> <description>Déscripteur de déploiement de HelloWorld</description> <display-name>HelloWorld</display-name> <enterprise-beans> <session> <description>Déscripteur de déploiement de HelloWorld</description> <display-name>HelloWorld</display-name> <ejb-name>HelloWorld</ejb-name> <home>sb.HelloWorldHome</home> <remote>sb.HelloWorld</remote> <ejb-class>sb.HelloWorldBean</ejb-class> <session-type>Stateless</session-type> <transaction-type>Container</transaction-type> </session> </enterprise-beans> <assembly-descriptor> <container-transaction> <method> <ejb-name>HelloWorld</ejb-name> <method-name>*</method-name> </method> <trans-attribute>Required</trans-attribute> </container-transaction> </assembly-descriptor> </ejb-jar>
Tout est malheureusement bon.
J'ai en tout 13 fichiers dans le jar
Voilà, si je continue ainsi tu vas croire que je me suis réincarné en pierre500HelloWorld.class
HelloWorldHome.class
HelloWorldBean.class
JOnASHelloWorldHome.class
JOnASHelloWorldHome_OWSkel.class
JOnASHelloWorldHome_OWStub.class
JOnASHelloWorldHome_Skel.class
JOnASHelloWorldHome_Stub.class
JOnASHelloWorldRemote.class
JOnASHelloWorldRemote_OWSkel.class
JOnASHelloWorldRemote_OWStub.class
JOnASHelloWorldRemote_Skel.class
JOnASHelloWorldRemote_Stub.class
C'est un mais je crois que je vais finir comme lui
Tes fichiers sont bien dans le sous répertoire sb dans le zip?
C:\tmp\HelloWorld\bin>jar tf HelloWorld.jar
META-INF/
META-INF/MANIFEST.MF
META-INF/ejb-jar.xml
META-INF/jonas-ejb-jar.xml
sb/HelloWorld.class
sb/HelloWorldBean.class
sb/HelloWorldHome.class
sb/JOnASHelloWorldHome.class
sb/JOnASHelloWorldHome_OWSkel.class
sb/JOnASHelloWorldHome_OWStub.class
sb/JOnASHelloWorldHome_Skel.class
sb/JOnASHelloWorldHome_Stub.class
sb/JOnASHelloWorldRemote.class
sb/JOnASHelloWorldRemote_OWSkel.class
sb/JOnASHelloWorldRemote_OWStub.class
sb/JOnASHelloWorldRemote_Skel.class
sb/JOnASHelloWorldRemote_Stub.class
Dans ton autre message tu as affiché:
Cela doit être sb.HelloWorldHome, tu sais d'où cela provient?GenIC fatal error: Cannot read the Deployment Descriptors from bin\HelloWorld.ja
r: Home class not found for bean HelloWorld: helloWorld.HelloWorldHome
J'avais indiqué le pourquoi plus hautEnvoyé par request
Envoyé par Stessy
De toutte façon j'ai tout abandonné avec eclipse et je suis revenu à mes bonnes vieilles origines c'est à dire JBuilder comme le service IT de mon entreprise possédait une version entreprise, ils me l'ont généreusement donnée mais ce n'est que la version 8 qui est d'ailleurs très bien.
Et je suis en train de lire le tuto de borland concernant les "ejb" ainsi que le tuto concernant "le développement d'applications j2EE" pour me permettre d'intégrer jonas dans jb (chose que j'ai d'ailleurs déjà réussi).
Je crois que tu seras plus à même de m'aider avec cet environnement, vu que c'est ton cheval de bataille.
Tu es proche du but là, essai au moins de le faire tourner en ligne de commande une fois
Moi je veux bien mais cela dure depuis hier et je ne comprends toujours pas pourquoi tout fonctionne jusqu'au lancement du clientEnvoyé par request
Pourtant j'ai fait exactement ce que toi tu as fait j'ai crée identiquement les même répertoires, la seule chose qui change c'est la jdk, sinon c'est absolument le même que toi.
Ce que j'aimerais savoir c'est pourquoi j'ai cette erreur, cela pourrait-il venir du serveur?
Voic l'erreur rencontrée en y ajoutant le print de l'exception
Impossible de trouver HelloWorldHome javax.naming.NamingException: MyHelloWorld
Vérifies que tu as bien dans le JNDI
le myHelloWorld.
Code : Sélectionner tout - Visualiser dans une fenêtre à part %JONAS_ROOT%\bin\nt\jonas.bar admin j
Si cela ne fonctionne toujours pas:
zip moi ton répertoire, je devrai vite trouver la différence avec moi.
Je fais également l'inverse, je t'envoi le .zip
à n'y rien comprendre
Marche impec.
Je vais comparer tous les fichiers et voir ce qui foire.
Oui j'avais bien le myHelloWorld mais malgré tout ...Envoyé par request
Salut
Je vous "ecoute " toujours et je n'arrive toujours pas non plus a faire fonctionner mon environnement .
Mais la mon probleme differe apparemment de celui de stessy puisque si je fais
MyHelloWorld n'apparait pas comment remedier a ca???
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 %JONAS_ROOT%\bin\nt\jonas.bat admin -j
[/code]
UML avec VIOLET
Reprends étape par étape ce que j'ai écrit et dit nous ou cela commence à poser problème.Envoyé par FreshVic
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