2010-02-23 8 views
5

J'utilise actuellement le framework Spring 3.0 dans un environnement websphere 6.1. L'IDE que j'utilise est RAD (Rational Application Developer) 7.5. Je travaillais sur un problème hier soir et j'ai constaté que mon code n'était pas actualisé à 100% sur le serveur après avoir modifié mon espace de travail. Ma question est quelle est la différence du point de vue de websphere entre:RAD (Rational Application Developer) - Propre vs Publier vs Redémarrer

  1. Redémarrer l'ensemble du serveur avec un EAR installé
  2. Nettoyage BME dans WebSphere
  3. En cliquant sur le projet et la sélection publier

Est-ce que d'autres serveurs Application/EDI ont le même type de problèmes de synchronisation lors du développement d'applications J2EE?

Répondre

4

Avec RAD, voici le comportement par défaut. Lorsque vous le 'nettoyez', il se débarrasse des objets compilés et les recrée via un 'build all' puis un 'publish'. Quand vous «construisez», il construit tout ce qu'il pense nécessaire et ensuite «publie». Quand vous «construisez tout», il construit tous les objets, puis «publie». Lorsque vous (ou votre EDI via les commandes ci-dessus) fait un 'publication', il prend tous vos objets compilés et les déploie sur le serveur que vous avez configuré pour ce projet (via un échange à chaud si le serveur est en cours d'exécution). Les hot swaps fonctionnent bien pour certaines choses (comme les JSP) mais pas aussi bien pour d'autres choses (fichiers de configuration, EJB, etc). Si vous ne parvenez pas à effectuer un échange à chaud correctement, vous devez faire rebondir votre serveur.

Par exemple, si vous avez configuré RAD pour construire automatiquement, votre serveur est en cours d'exécution, et que vous modifiez un EJB ce qui va arriver est:
1. L'EJB sera compilé
2. Si le projet est OK RAD déploiera vos modifications
3. le serveur ne sera probablement pas en mesure de pick-up vos modifications hotswapped de sorte que le serveur continuera à exécuter l'ancien code

Lorsque cela se produit rebondir le serveur et le code sera ramassé .

+1

Merci beaucoup ... qui est très très instructif. – jwmajors81

2

Redémarrer le serveur prendra un certain temps mais sûrement recharger les fichiers s'ils existent sur le système de fichiers. Je ne suis pas sûr d'appeler Clean à partir de la vue Serveurs.

Si vous appelez Publier dans la vue Serveurs, RAD redémarrera l'application sur le serveur. De ce fait, les changements sont normalement ramassés.

Vous devez comprendre le type de modification que vous avez effectué et voir de quoi WebSphere Application Server a besoin pour charger la modification. Si vous faites défiler vers le bas de l'entrée d'aide liée, vous pouvez voir pour chaque type de module JavaEE un lien vers un document qui décrit ce qui doit être fait pour ramasser les changements. Dans le cas contraire, vous devez comprendre tout le cycle de vie de ce qui se passe entre le changement et la récupération dans le navigateur, par ex. modifier sur le fichier, le fichier est compilé, préparer le déploiement, classloader voit le changement, remarque que l'application doit être redémarrée, l'utilisateur appelle Republish pour redémarrer l'application sur le serveur, l'utilisateur actualise la page web, Firefox affiche dans Firebug que le L'horodatage Last-Modified dans l'en-tête HTTP a été modifié.Je ne suis pas sûr de ce que signifie le remplacement à chaud, mais lors du débogage du serveur, le remplacement de méthode de code à chaud peut remplacer une classe dans le serveur débogué s'il n'y a aucune référence détenue à la classe ou la structure de classe n'a pas changé.

Les messages sur ce site sont mes propres et ne représentent pas nécessairement les positions, stratégies ou opinions d'IBM

Questions connexes