Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[servlets] visibilité d'un objet d'un autre package

2 réponses
Avatar
Vinz
Salut à tous,

j'ai un soucis dans le développement d'une appli web : j'ai commencé par
développer quelques classes qui je pense forment la "logique métier" comme
on dit, même si dans mon cas c'est peut être un peu prétentieux. Enfin, ça
fonctionne, avec pour seule interface la console. A partir de ça, mon
objectif est de coller une interface web là-dessus.
Pour faire propre, j'essaye de respecter le paradigme
Modèle-Vue-Controlleur.
J'ai donc une première jsp avec un formulaire, avec une servlet qui recoit
les paramètres, instancie mon AppliBean avec les données reçues. Ce bean
cache l'existence de Appli à l'interface utilisateur.
Le problème, c'est que j'ai une erreur java.lang.NoClassDefFoundError quand
AppliBean essaye d'instancier Appli.

J'utilise Eclipse pour développer l'ensemble et je n'ai pas d'erreur
remontée à ce niveau :
- mon premier projet avec mon appli sans interface se situe dans un projet
toto, package toto. Appli appartient à ce package.
- j'ai créé un deuxième projet de type web (totoWeb), avec un package
totoWeb, dans lequel j'ai mon bean AppliBean.
Eclipse ne me signale pas d'erreur quand j'instancie Appli à partir
d'Applibean :

import toto.Appli;
Appli monAppli=new Appli();

J'ai bien ajouté le projet toto au chemin de génération de totoWeb.

Je débute avec les technologies java, et j'ai lu que le répertoire lib de
Tomcat servait à accueillir les .jar des objets qu'on utilise. Faut-il que
je fasse un .jar de mon projet toto, et que je le mette là-dedans ? ça
m'embête, parce que j'ai encore des modifs à effectuer dessus, donc s'il
faut que je refasse un .jar à chaque fois, ça ne va pas être pratique...

merci de votre aide

--
Vinz

2 réponses

Avatar
otaku
Vinz wrote:
Salut à tous,


SALUT :-)

j'ai un soucis dans le développement d'une appli web : j'ai commencé par
développer quelques classes qui je pense forment la "logique métier" comme
on dit, même si dans mon cas c'est peut être un peu prétentieux. Enfin, ça
fonctionne, avec pour seule interface la console. A partir de ça, mon
objectif est de coller une interface web là-dessus.
Pour faire propre, j'essaye de respecter le paradigme
Modèle-Vue-Controlleur.
J'ai donc une première jsp avec un formulaire, avec une servlet qui recoit
les paramètres, instancie mon AppliBean avec les données reçues. Ce bean
cache l'existence de Appli à l'interface utilisateur.
Le problème, c'est que j'ai une erreur java.lang.NoClassDefFoundError quand
AppliBean essaye d'instancier Appli.


j'ai eu le meme problème la semaine dernière. En fait il faut de les
composant formant ta logique metier soit packagés (par exemple) et que
tu place le .jar dans le repertoire /jre/lib/ext/[] .
Mais comme quant tu installe le SDK java sous win il t'installe en plus
un JRE dans program files (generalement, et en plus du jre qu'il y a
dans le sdk) place aussi tes lib à cette endroit...


J'utilise Eclipse pour développer l'ensemble et je n'ai pas d'erreur
remontée à ce niveau :
- mon premier projet avec mon appli sans interface se situe dans un projet
toto, package toto. Appli appartient à ce package.
- j'ai créé un deuxième projet de type web (totoWeb), avec un package
totoWeb, dans lequel j'ai mon bean AppliBean.
Eclipse ne me signale pas d'erreur quand j'instancie Appli à partir
d'Applibean :

import toto.Appli;
Appli monAppli=new Appli();

J'ai bien ajouté le projet toto au chemin de génération de totoWeb.

Je débute avec les technologies java, et j'ai lu que le répertoire lib de
Tomcat servait à accueillir les .jar des objets qu'on utilise. Faut-il que
je fasse un .jar de mon projet toto, et que je le mette là-dedans ? ça
m'embête, parce que j'ai encore des modifs à effectuer dessus, donc s'il
faut que je refasse un .jar à chaque fois, ça ne va pas être pratique...



...exact un JAR avec ta couche métier à mettre (je me repete) dans le
bon repertoire.
Toutefois ajouter des librairies dans le repertoire indiqué plus haut
est discutable , certain ne pensent pas que ce soit une bonne solution.
Moi je di que c simple et permet de les mettre (tes lib) au meme endroit
merci de votre aide




voila voila bon courage


--- OTAKU -----

Avatar
GLH
"otaku" a écrit dans le message de news:
40486456$0$28138$
Vinz wrote:
Salut à tous,


SALUT :-)

j'ai un soucis dans le développement d'une appli web : j'ai commencé par
développer quelques classes qui je pense forment la "logique métier"
comme


on dit, même si dans mon cas c'est peut être un peu prétentieux. Enfin,
ça


fonctionne, avec pour seule interface la console. A partir de ça, mon
objectif est de coller une interface web là-dessus.
Pour faire propre, j'essaye de respecter le paradigme
Modèle-Vue-Controlleur.
J'ai donc une première jsp avec un formulaire, avec une servlet qui
recoit


les paramètres, instancie mon AppliBean avec les données reçues. Ce bean
cache l'existence de Appli à l'interface utilisateur.
Le problème, c'est que j'ai une erreur java.lang.NoClassDefFoundError
quand


AppliBean essaye d'instancier Appli.


j'ai eu le meme problème la semaine dernière. En fait il faut de les
composant formant ta logique metier soit packagés (par exemple) et que
tu place le .jar dans le repertoire /jre/lib/ext/[] .
Mais comme quant tu installe le SDK java sous win il t'installe en plus
un JRE dans program files (generalement, et en plus du jre qu'il y a
dans le sdk) place aussi tes lib à cette endroit...


J'utilise Eclipse pour développer l'ensemble et je n'ai pas d'erreur
remontée à ce niveau :
- mon premier projet avec mon appli sans interface se situe dans un
projet


toto, package toto. Appli appartient à ce package.
- j'ai créé un deuxième projet de type web (totoWeb), avec un package
totoWeb, dans lequel j'ai mon bean AppliBean.
Eclipse ne me signale pas d'erreur quand j'instancie Appli à partir
d'Applibean :

import toto.Appli;
Appli monAppli=new Appli();

J'ai bien ajouté le projet toto au chemin de génération de totoWeb.

Je débute avec les technologies java, et j'ai lu que le répertoire lib
de


Tomcat servait à accueillir les .jar des objets qu'on utilise. Faut-il
que


je fasse un .jar de mon projet toto, et que je le mette là-dedans ? ça
m'embête, parce que j'ai encore des modifs à effectuer dessus, donc s'il
faut que je refasse un .jar à chaque fois, ça ne va pas être pratique...



...exact un JAR avec ta couche métier à mettre (je me repete) dans le
bon repertoire.
Toutefois ajouter des librairies dans le repertoire indiqué plus haut
est discutable , certain ne pensent pas que ce soit une bonne solution.
Moi je di que c simple et permet de les mettre (tes lib) au meme endroit
merci de votre aide




voila voila bon courage


--- OTAKU -----


dans le jre/lib/ext !!! y a pas plus crade, m'enfin passons

si c'est une appli web (was : > > j'ai un soucis dans le développement d'une
appli web : ), WEB-INF/lib pour un jar, ou WEB-INF/classes pour les classes
non "jarisées" est beaucoup plus approprié...
lire a ce sujet les specs servlet2.3 paragraphes 9.6.1 et 9.6.2

GLH