© Copyright International Business Machines Corporation 2006. All rights reserved. Copyright IBM France 2006. Tous droits réservés. US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
Si un module EJB (Enterprise JavaBean) est partagé entre plusieurs projets EAR exécutés sur un serveur WebSphere Application Server et que l'un de ces projets est retiré du serveur, les autres projets EAR doivent être redémarrés pour pouvoir accéder à nouveau aux ressources telles que les beans EJB contenues dans le projet EJB.
Si vous ne prenez pas cette mesure, il se peut que vous receviez des messages d'erreur similaires à l'exemple ci-après.Ces erreurs se produisent parce que les noms JNDI (Java Naming and Directory Interface) figurant dans le projet EJB sont supprimés du serveur lorsque le projet EAR est retiré.
Exemple de message d'erreur :
00000028 SystemOut O javax.naming.NameNotFoundException: Context: myCell/nodes/myNode/servers/server1, name: ejb/ejbs/Session20Home: First component in name Session20Home not found. [Root exception is org.omg.CosNaming.NamingContextPackage.NotFound: IDL:omg.org/CosNaming/NamingContext/NotFound:1.0]
at com.ibm.ws.naming.jndicos.CNContextImpl.processNotFoundException(CNContextImpl.java:4730)
at com.ibm.ws.naming.jndicos.CNContextImpl.doLookup(CNContextImpl.java:1907)
at com.ibm.ws.naming.jndicos.CNContextImpl.doLookup(CNContextImpl.java:1862)
at com.ibm.ws.naming.jndicos.CNContextImpl.lookupExt(CNContextImpl.java:1552)
at com.ibm.ws.naming.jndicos.CNContextImpl.lookup(CNContextImpl.java:1354)
at com.ibm.ws.naming.util.WsnInitCtx.lookup(WsnInitCtx.java:172)
at javax.naming.InitialContext.lookup(InitialContext.java:363)
at com.ibm.ivj.ejb.runtime.AbstractAccessBean.lookupAndCacheHome(AbstractAccessBean.java:224)
at com.ibm.ivj.ejb.runtime.AbstractAccessBean.getGlobalHome(AbstractAccessBean.java:216)
at com.ibm.ivj.ejb.runtime.AbstractAccessBean.getHome(AbstractAccessBean.java:249)
at ejbs.Session20AccessBean.ejbHome(Session20AccessBean.java:50)
at ejbs.Session20AccessBean.instantiateEJB(Session20AccessBean.java:80)
at ejbs.Session20AccessBean.foo(Session20AccessBean.java:91)
Supposons que vous ayez un projet (par exemple, un client d'application) configuré comme suit :
- La facette de projet Java est configurée pour la version 1.4.
- L'option Activer le remplacement de méthode à chaud est cochée dans la configuration du serveur utilisé comme environnement d'exécution cible de ce projet.
Dans ces conditions, il se peut que le bouton Reprendre dans la vue Débogage ne fonctionne pas correctement.Cela peut arriver, par exemple, lorsque vous exécutez l'application en mode débogage sur le serveur et que vous tentez de changer le code source pendant l'exécution, puis que vous utilisez le bouton Reprendre pour poursuivre le débogage de l'application.Vous constatez alors que vos modifications apportées au code source (remplacement de méthode à chaud) n'ont pas été prises en compte.
Dans ce cas, cliquez à deux reprises sur le bouton Reprendre pour permettre aux modifications d'être appliquées au code en cours d'exécution.
Remarque : Ce problème ne se produit pas lorsque la facette de projet Java est configurée pour la version 5.0.
Si vous ajoutez un fichier JAR d'utilitaire aux bibliothèques Web d'un projet Web et que vous insérez, dans le code de votre application, des références à des classes contenues dans ce fichier JAR, il est possible que vous receviez une erreur java.lang.NoClassDefFoundError en tentant d'exécuter l'application sur le serveur.
Pour éviter cette erreur, ajoutez le fichier JAR à la liste des dépendances de module J2EE après l'avoir ajouté au module EAR. Voici comment procéder :
- Ajoutez votre fichier JAR d'utilitaire au module EAR.Pour la procédure détaillée, consultez la rubrique d'aide Ajout de fichiers JAR d'utilitaire de projet.
- Cliquez avec le bouton droit sur votre projet Web et sélectionnez Propriétés.La boîte de dialogue Propriétés s'ouvre.
- Sélectionnez Dépendances de module J2EE.
- Sous l'onglet Modules J2EE, dans la colonne JAR/Module, cochez la case de votre fichier JAR d'utilitaire.
Si le serveur distant est arrêté, l'assistant Nouveau serveur peut tarder à aboutir lorsque vous cliquez sur le bouton Terminer.Une solution consiste à démarrer le serveur distant avant de cliquer sur le bouton Terminer de l'assistant Nouveau serveur.
Si un serveur WebSphere Application Server v6.1 sécurisé est démarré et que, dans l'éditeur de serveur, vous changez le type de connexion à ce serveur (par exemple, vous passez de RMI à SOAP ou l'inverse), il est possible que vous receviez le message d'erreur suivant après avoir enregistré les modifications apportées dans l'éditeur :
La publication n'est pas effectuée car le serveur n'est pas démarré.Démarrez le serveur avant d'effectuer l'opération de publication.
Vous pouvez ignorer cette erreur en toute sécurité.Si besoin est, une fois que le statut du serveur dans la vue Serveurs est Démarré, vous pouvez lancer une commande de publication (dans la vue Serveurs, cliquez avec le bouton droit sur le serveur et sélectionnez Publier).