2016-01-21 5 views
0

Nous avons un serveur de production qui est une instance de websphere, où nous avons copié un pot (par exemple, c.jar qui existe déjà dans EAR et remplacé maintenant) à EAR qui est déjà déployé comme correctif . J'ai la classe A, référençant la classe B dans le même Jar qui est c.jar, et Pendant le chargement de la classe A, la classe B n'a pas pu trouver et aboutissant à une NoClassFoundError. Le déploiement à chaud sur le serveur est désactivé. Cependant, après avoir redémarré le serveur A est capable de trouver B. Toute propriété qui nous manque? Pourquoi la classe B n'est pas trouvée bien que présente dans le même pot, mais après redémarrage, elle est capable de trouver. De plus, avant de copier le fichier jar, Old c.jar fonctionne correctement avec les classes A et B chargées. Nous utilisons was 6.1Problème de chargement de classe dans websphere

+0

Avez-vous redémarré l'application après les modifications? Voir ici - http://www-01.ibm.com/support/knowledgecenter/SSAW57_8.5.5/com.ibm.websphere.nd.doc/ae/trun_app_hotupgrade_app.html?lang=fr pour plus de détails. Copier des bocaux directement n'est pas recommandé. Aussi 6.1 est loin de support maintenant. Vous devriez migrer vers une version plus récente. – Gas

+0

Cela a fonctionné correctement après le redémarrage, mais pourquoi le problème de chargement de classe apparaît-il bien que les classes soient présentes dans le fichier jar. Cependant, après le redémarrage, il a bien fonctionné –

Répondre

0

Lorsque le serveur d'applications démarre, il crée les fichiers de classe de l'application que vous avez déployée dans votre instance JAS WAS pour la rendre disponible en phase d'exécution. Lorsque vous explorez l'application, les autres classes sont chargées. Lorsque vous supprimez/écrasez le fichier jar, vous brisez le lien et c'est la raison pour laquelle les autres classes ne trouvent pas les classes dans c.jar. Lorsque vous redémarrez la JVM, un nouveau fichier de classe est chargé dans l'environnement d'exécution JVM et vous trouvez qu'il est disponible.

+0

Merci pour l'explication, mais ce problème ne se produisait pas plus tôt. Cela arrive seulement maintenant –