J'ai construit un EAR (WebLogic) qui contient 2 EJB session qui
partagent des classes en commun (bibliothèque de méthodes utilitaires
par exemple).
Pour le code commun, j'ai fait un .jar avec les .class des classes en
commun et l'ai mis dans le répertoire META-INF/lib de l'EAR.
Pour que les EJB trouvent cette librairie commune, j'ai ajouté dans le
MANIFEST.MF du .jar de l'EAR la ligne suivante :
Class-Path: META-INF/lib
Mais au déploiement des EJB sur WebLogic, les classes communes ne sont
pas trouvées.
Qu'est-ce qui ne convient pas ?
J'ai également tenté de mettre les .class directement dans les EJB (donc
en dupliquant le code commun), mais cela n'a pas marché.
J'ai aussi tenté de modifier le MANIFEST.MF des .jar des EJB, mais cela
n'a rien donné.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Damien Lecan
J'ai construit un EAR (WebLogic) qui contient 2 EJB session qui partagent des classes en commun (bibliothèque de méthodes utilitaires par exemple). Pour le code commun, j'ai fait un .jar avec les .class des classes en commun et l'ai mis dans le répertoire META-INF/lib de l'EAR. Pour que les EJB trouvent cette librairie commune, j'ai ajouté dans le MANIFEST.MF du .jar de l'EAR la ligne suivante : Class-Path: META-INF/lib Mais au déploiement des EJB sur WebLogic, les classes communes ne sont pas trouvées. Qu'est-ce qui ne convient pas ? Il te faut un fichier application.xml, qui va décrire beaucoup plus
finement le contenu de ton EAR.
La dtd http://java.sun.com/j2ee/dtds/application_1_2.dtd
Damien
J'ai construit un EAR (WebLogic) qui contient 2 EJB session qui
partagent des classes en commun (bibliothèque de méthodes utilitaires
par exemple).
Pour le code commun, j'ai fait un .jar avec les .class des classes en
commun et l'ai mis dans le répertoire META-INF/lib de l'EAR.
Pour que les EJB trouvent cette librairie commune, j'ai ajouté dans le
MANIFEST.MF du .jar de l'EAR la ligne suivante :
Class-Path: META-INF/lib
Mais au déploiement des EJB sur WebLogic, les classes communes ne sont
pas trouvées.
Qu'est-ce qui ne convient pas ?
Il te faut un fichier application.xml, qui va décrire beaucoup plus
finement le contenu de ton EAR.
La dtd
http://java.sun.com/j2ee/dtds/application_1_2.dtd
J'ai construit un EAR (WebLogic) qui contient 2 EJB session qui partagent des classes en commun (bibliothèque de méthodes utilitaires par exemple). Pour le code commun, j'ai fait un .jar avec les .class des classes en commun et l'ai mis dans le répertoire META-INF/lib de l'EAR. Pour que les EJB trouvent cette librairie commune, j'ai ajouté dans le MANIFEST.MF du .jar de l'EAR la ligne suivante : Class-Path: META-INF/lib Mais au déploiement des EJB sur WebLogic, les classes communes ne sont pas trouvées. Qu'est-ce qui ne convient pas ? Il te faut un fichier application.xml, qui va décrire beaucoup plus
finement le contenu de ton EAR.
La dtd http://java.sun.com/j2ee/dtds/application_1_2.dtd
Damien
Frédéric Lachasse
"Marc Ferry" wrote in message news:bugv3a$
Bonjour,
J'ai construit un EAR (WebLogic) qui contient 2 EJB session qui partagent des classes en commun (bibliothèque de méthodes utilitaires par exemple). Pour le code commun, j'ai fait un .jar avec les .class des classes en commun et l'ai mis dans le répertoire META-INF/lib de l'EAR. Pour que les EJB trouvent cette librairie commune, j'ai ajouté dans le MANIFEST.MF du .jar de l'EAR la ligne suivante : Class-Path: META-INF/lib Mais au déploiement des EJB sur WebLogic, les classes communes ne sont pas trouvées. Qu'est-ce qui ne convient pas ?
1) Le "Class-Path:" doit être dans le manifest des modules (EJBs et WARs), pas dans le manifest de l'EAR, chaque module pouvant avoir un classpath différent.
2) Comme pour un classpath classique, un répertoire référence une hiérarchie de .class, mais ne charge pas les JARs. Pour mettre un .jar dans un classpath, on met le nom complet du jar...
J'ai également tenté de mettre les .class directement dans les EJB (donc en dupliquant le code commun), mais cela n'a pas marché. J'ai aussi tenté de modifier le MANIFEST.MF des .jar des EJB, mais cela n'a rien donné.
(Pourquoi mettre les jars dans META-INF/lib? Ce n'est pas un WAR.)
Note: dans un EAR, j'ai mis tous les .class de l'application, servlets et EJBs dans le même jar, puis créé un ejb.jar et web.war contenant juste les DD (deployment descriptors) et un Class-Path dans leurs MANIFEST.MF. Et le truc marche avec tous les serveurs que j'ai testé (WebLogic, WebSphere, JBoss et SunONE).
-- Frédéric Lachasse - ECP86
"Marc Ferry" <mferry.ext@rd.francetelecom.com> wrote in message
news:bugv3a$alh4@news.rd.francetelecom.fr...
Bonjour,
J'ai construit un EAR (WebLogic) qui contient 2 EJB session qui
partagent des classes en commun (bibliothèque de méthodes utilitaires
par exemple).
Pour le code commun, j'ai fait un .jar avec les .class des classes en
commun et l'ai mis dans le répertoire META-INF/lib de l'EAR.
Pour que les EJB trouvent cette librairie commune, j'ai ajouté dans le
MANIFEST.MF du .jar de l'EAR la ligne suivante :
Class-Path: META-INF/lib
Mais au déploiement des EJB sur WebLogic, les classes communes ne sont
pas trouvées.
Qu'est-ce qui ne convient pas ?
1) Le "Class-Path:" doit être dans le manifest des modules (EJBs et WARs),
pas dans le manifest de l'EAR, chaque module pouvant avoir un classpath
différent.
2) Comme pour un classpath classique, un répertoire référence une hiérarchie
de .class, mais ne charge pas les JARs. Pour mettre un .jar dans un
classpath, on met le nom complet du jar...
J'ai également tenté de mettre les .class directement dans les EJB (donc
en dupliquant le code commun), mais cela n'a pas marché.
J'ai aussi tenté de modifier le MANIFEST.MF des .jar des EJB, mais cela
n'a rien donné.
(Pourquoi mettre les jars dans META-INF/lib? Ce n'est pas un WAR.)
Note: dans un EAR, j'ai mis tous les .class de l'application, servlets et
EJBs dans le même jar, puis créé un ejb.jar et web.war contenant juste les
DD (deployment descriptors) et un Class-Path dans leurs MANIFEST.MF. Et le
truc marche avec tous les serveurs que j'ai testé (WebLogic, WebSphere,
JBoss et SunONE).
J'ai construit un EAR (WebLogic) qui contient 2 EJB session qui partagent des classes en commun (bibliothèque de méthodes utilitaires par exemple). Pour le code commun, j'ai fait un .jar avec les .class des classes en commun et l'ai mis dans le répertoire META-INF/lib de l'EAR. Pour que les EJB trouvent cette librairie commune, j'ai ajouté dans le MANIFEST.MF du .jar de l'EAR la ligne suivante : Class-Path: META-INF/lib Mais au déploiement des EJB sur WebLogic, les classes communes ne sont pas trouvées. Qu'est-ce qui ne convient pas ?
1) Le "Class-Path:" doit être dans le manifest des modules (EJBs et WARs), pas dans le manifest de l'EAR, chaque module pouvant avoir un classpath différent.
2) Comme pour un classpath classique, un répertoire référence une hiérarchie de .class, mais ne charge pas les JARs. Pour mettre un .jar dans un classpath, on met le nom complet du jar...
J'ai également tenté de mettre les .class directement dans les EJB (donc en dupliquant le code commun), mais cela n'a pas marché. J'ai aussi tenté de modifier le MANIFEST.MF des .jar des EJB, mais cela n'a rien donné.
(Pourquoi mettre les jars dans META-INF/lib? Ce n'est pas un WAR.)
Note: dans un EAR, j'ai mis tous les .class de l'application, servlets et EJBs dans le même jar, puis créé un ejb.jar et web.war contenant juste les DD (deployment descriptors) et un Class-Path dans leurs MANIFEST.MF. Et le truc marche avec tous les serveurs que j'ai testé (WebLogic, WebSphere, JBoss et SunONE).
-- Frédéric Lachasse - ECP86
Marc Ferry
Merci pour ces infos. J'ai trouvé une autre solution, qui me semble plus "élégante". Structure de l'EAR :
J'ai construit un EAR (WebLogic) qui contient 2 EJB session qui partagent des classes en commun (bibliothèque de méthodes utilitaires par exemple). Pour le code commun, j'ai fait un .jar avec les .class des classes en commun et l'ai mis dans le répertoire META-INF/lib de l'EAR. Pour que les EJB trouvent cette librairie commune, j'ai ajouté dans le MANIFEST.MF du .jar de l'EAR la ligne suivante : Class-Path: META-INF/lib Mais au déploiement des EJB sur WebLogic, les classes communes ne sont pas trouvées. Qu'est-ce qui ne convient pas ?
1) Le "Class-Path:" doit être dans le manifest des modules (EJBs et WARs), pas dans le manifest de l'EAR, chaque module pouvant avoir un classpath différent.
2) Comme pour un classpath classique, un répertoire référence une hiérarchie de .class, mais ne charge pas les JARs. Pour mettre un .jar dans un classpath, on met le nom complet du jar...
J'ai également tenté de mettre les .class directement dans les EJB (donc en dupliquant le code commun), mais cela n'a pas marché. J'ai aussi tenté de modifier le MANIFEST.MF des .jar des EJB, mais cela n'a rien donné.
(Pourquoi mettre les jars dans META-INF/lib? Ce n'est pas un WAR.)
Note: dans un EAR, j'ai mis tous les .class de l'application, servlets et EJBs dans le même jar, puis créé un ejb.jar et web.war contenant juste les DD (deployment descriptors) et un Class-Path dans leurs MANIFEST.MF. Et le truc marche avec tous les serveurs que j'ai testé (WebLogic, WebSphere, JBoss et SunONE).
Merci pour ces infos.
J'ai trouvé une autre solution, qui me semble plus "élégante".
Structure de l'EAR :
"Marc Ferry" <mferry.ext@rd.francetelecom.com> wrote in message
news:bugv3a$alh4@news.rd.francetelecom.fr...
Bonjour,
J'ai construit un EAR (WebLogic) qui contient 2 EJB session qui
partagent des classes en commun (bibliothèque de méthodes utilitaires
par exemple).
Pour le code commun, j'ai fait un .jar avec les .class des classes en
commun et l'ai mis dans le répertoire META-INF/lib de l'EAR.
Pour que les EJB trouvent cette librairie commune, j'ai ajouté dans le
MANIFEST.MF du .jar de l'EAR la ligne suivante :
Class-Path: META-INF/lib
Mais au déploiement des EJB sur WebLogic, les classes communes ne sont
pas trouvées.
Qu'est-ce qui ne convient pas ?
1) Le "Class-Path:" doit être dans le manifest des modules (EJBs et WARs),
pas dans le manifest de l'EAR, chaque module pouvant avoir un classpath
différent.
2) Comme pour un classpath classique, un répertoire référence une hiérarchie
de .class, mais ne charge pas les JARs. Pour mettre un .jar dans un
classpath, on met le nom complet du jar...
J'ai également tenté de mettre les .class directement dans les EJB (donc
en dupliquant le code commun), mais cela n'a pas marché.
J'ai aussi tenté de modifier le MANIFEST.MF des .jar des EJB, mais cela
n'a rien donné.
(Pourquoi mettre les jars dans META-INF/lib? Ce n'est pas un WAR.)
Note: dans un EAR, j'ai mis tous les .class de l'application, servlets et
EJBs dans le même jar, puis créé un ejb.jar et web.war contenant juste les
DD (deployment descriptors) et un Class-Path dans leurs MANIFEST.MF. Et le
truc marche avec tous les serveurs que j'ai testé (WebLogic, WebSphere,
JBoss et SunONE).
J'ai construit un EAR (WebLogic) qui contient 2 EJB session qui partagent des classes en commun (bibliothèque de méthodes utilitaires par exemple). Pour le code commun, j'ai fait un .jar avec les .class des classes en commun et l'ai mis dans le répertoire META-INF/lib de l'EAR. Pour que les EJB trouvent cette librairie commune, j'ai ajouté dans le MANIFEST.MF du .jar de l'EAR la ligne suivante : Class-Path: META-INF/lib Mais au déploiement des EJB sur WebLogic, les classes communes ne sont pas trouvées. Qu'est-ce qui ne convient pas ?
1) Le "Class-Path:" doit être dans le manifest des modules (EJBs et WARs), pas dans le manifest de l'EAR, chaque module pouvant avoir un classpath différent.
2) Comme pour un classpath classique, un répertoire référence une hiérarchie de .class, mais ne charge pas les JARs. Pour mettre un .jar dans un classpath, on met le nom complet du jar...
J'ai également tenté de mettre les .class directement dans les EJB (donc en dupliquant le code commun), mais cela n'a pas marché. J'ai aussi tenté de modifier le MANIFEST.MF des .jar des EJB, mais cela n'a rien donné.
(Pourquoi mettre les jars dans META-INF/lib? Ce n'est pas un WAR.)
Note: dans un EAR, j'ai mis tous les .class de l'application, servlets et EJBs dans le même jar, puis créé un ejb.jar et web.war contenant juste les DD (deployment descriptors) et un Class-Path dans leurs MANIFEST.MF. Et le truc marche avec tous les serveurs que j'ai testé (WebLogic, WebSphere, JBoss et SunONE).