Bonjour à tous,
Je viens solliciter vos connaissances car j'avoue perdre pied complètement.
Je vous explique mon soucis : je travaille actuellement sur un projet Java Web structuré de la manière suivante :
- d'un côté se trouve l'application serveur, hébergée sur un serveur jOnas (pas le meilleur à mon sens mais imposé). Pour le moment, les communications se font par servlet.
- de l'autre côté un client (et c'est la que ca se corse). Ce client est une applet Java intégrée dans une page jsp par jnlp. Un client peut donc intéragir avec l'applet sur la page web, mais dispose aussi de la possibilité de télécharger l'applet et ainsi s'en servir comme une application standalone (cela constitue un point important du cahier des charges).
Concernant le développement aucun soucis (il n'y a pas non plus de difficultés particulières). C'est la phase de build qui me pose problème (j'obtiens des NoClassDefFoundError en pagaille).
Voici donc la structure que j'essaie d'obtenir (notez que je n'utilise pas Maven mais Ant) :
- un fichier applet.jar contenant les sources de l'applet
- un fichier war comprenant le contenu web du projet (pages jsp, jnlp) ainsi que l'applet précédemment citée (pour l'affichage dans la page web ou le téléchargement)
J'arrive à construire mes 2 fichiers sans problèmes, jusqu'à ce que la nécessité d'utiliser XStream apparaisse. Il m'a donc fallu inclure cette librairie à la fois côté client et serveur. Le problème, c'est qu'en utilisant le classpath du jar, la librairie n'est pas accessible en standalone. Autre idée, décompresser la librairie dans mon projet, mais XStream utilisant d'autres jar, c'est le chien qui se mord la queue.
J'ai essayé tout ce qui me passait par la tête :
- mettre xstream.jar dans mon fichier war et jouer avec le classpath du jar (=> pas de problème côté serveur, ni dans l'applet lancée en tant que telle, mais problème pour le standalone)
- utiliser les paramètres jnlp qui vont bien (ca ne renseigne pas le classpath malheureusement)
- décompresser le jar (et donc inclure les fichiers .class au sein du source de mon applet), sans résultat.
J'aimerai donc savoir quelle était la meilleure solution (ou du moins une solution) qui permettrait de construire ces 2 fichiers tout en conservant la notion d'applet/standalone, car je désespère et perds beaucoup de temps...
Note : Le fichier war fonctionne très bien et a bel et bien accès à la librairie xstream car celle-ci se trouve dans le répertoire WEB-INF/lib
En vous remerciant ma bonne dame
NöVa-
Partager