jee - wildfly java 11




Avantages(et astuces) d'une mise à niveau de JBoss 4.2.x vers JBoss 5.x, 6.x, 7.x et WildFly 8.x? (4)

Je suis passé de JBoss 4 à 5 et, d’expérience, ce qui suit est le plus important à noter:

  • JBoss 5 (et 6 et 7) ne sont pas aussi clairs que JBoss 4 avec les fichiers XML. Vous devez vous assurer que tous les fichiers XML de votre descripteur de déploiement sont valides. Vous utilisez peut-être des DTD dans certains fichiers - je vous recommande de les mettre à niveau pour utiliser le schéma XML à la place.
  • Certaines bibliothèques peuvent provoquer des incompatibilités. Cela peut être particulièrement vrai si vous accédez à des services Web et / ou effectuez une analyse XML.
  • Si vous pré-compilez vos JSP dans JBoss 4, vous ne pourrez probablement pas le faire dans JBoss 6/7.
  • JBoss 4 et 5 utilisent différentes implémentations de files d'attente de messages. Si vous avez des files d'attente de messages ou des sujets définis, vous devrez les redéfinir.
  • JBoss TreeCache n'est plus utilisé. Si vous l'utilisez à des fins de mise en cache, vous devrez changer pour utiliser le nouveau cache JBoss.
  • La sécurité JBoss 5 est différente. Si vos clients distants nécessitent un accès sécurisé à JBoss, vous devrez les configurer différemment.

Quelques ressources utiles sont:

http://java.dzone.com/articles/migrating-jboss-4-jboss-5 http://venugopaal.wordpress.com/2009/02/02/jboss405-to-jboss-5ga

Officiellement, JBoss 6 n'est certifié que pour le profil Web Java EE. Par conséquent, si vous utilisez des fonctionnalités «héritées» telles que EJB 2.x, elles ne seront plus prises en charge à l'avenir. Selon le cycle de vie de votre application, cela peut ou non être un problème. JBoss 6 prend actuellement en charge entièrement EJB2.1, mais il n’est pas certifié par rapport à cela.

J'ai également constaté que JBoss 5 gère beaucoup mieux la mémoire que JBoss 4. Avec JBoss 4, je vois beaucoup plus d'erreurs de PermGen qu'avec JBoss 5.

Veuillez supposer que je n'ai pas besoin de m'inquiéter du temps et des coûts de développement: je m'intéresse aux avantages techniques généraux (amélioration des performances? API améliorées?) Et aux nouvelles fonctionnalités.

Je travaille actuellement sur des produits utilisant la version 4.2.x, et nous considérons un changement majeur pour les versions à venir et devant converger.

J'ai jeté un coup d'œil aux notes de publication de chaque version et à certains articles sur chaque version pour les versions 5.x, 6.x, 7.x et 8.x. Mais je serais ravi d'avoir des commentaires de première main de personnes qui ont fait le changement.

J'ai remarqué qu'il y avait des changements importants concernant la messagerie (passage de JBoss MQ à JBoss Messenging), et que JBoss 7.x semble changer un peu sa couche de configuration. Il se passe alors beaucoup plus de choses lors du passage à JBoss / WildFly 8.x.

S'il vous plaît, recommandez de bons articles indiquant les pièges si vous le pouvez. J'en ai trouvé quelques-unes pour les migrations vers JBoss 5.x, mais pas beaucoup pour les versions 6.x ou même 7.x, et quelqu'un d'autre évalue 8.x pour nous maintenant. N'hésitez pas à recommander des alternatives également si vous pensez qu'elles sont pertinentes, même si je préfère me concentrer uniquement sur JBoss.

Pour information, nous utilisons un mélange de systèmes basés sur des plug-ins compatibles JPF et OSGi (utilisant Eclipse Equinox), avec des clients développés dans Swing (certains étant déployés via WebStart).

Mise à jour: Bien que cette question ait déjà apporté d'excellentes réponses, je pense qu'elle mérite une mise à jour pour WildFly (et en fait, nos projets internes ont retardé le passage de 4.2.x à 7.x comme prévu initialement pour attendre WildFly). De nouvelles pensées et réponses sont les bienvenues.


Je voulais juste attirer l’attention de tous ceux qui pourraient être confrontés au problème du ballonnement après la mise à niveau. Le microcontrôleur JBoss-6 tente d'analyser les annotations spécifiques à Jboss en chargeant les classes de tous les JAR du chemin de classe au démarrage. Cela provoque le gonflement PermGen comme il commence à charger toutes les classes indésirables. Pour réduire la quantité de numérisation, le microcontrôleur fournit un autre descripteur au moyen de jboss-scanning.xml. Ajoutez ce 'jboss-scanning.xml' au WEB-INF dans WAR et ass 'jboss-scanning.xml' au META-INF dans les EAR.

<scanning xmlns="urn:jboss:scanning:1.0">

    <!-- Purpose: Disable scanning for annotations in contained deployment. -->

</scanning>


Je ne peux parler que de l’expérience de production avec JBoss 5.1.0 et de quelques recherches sur la version 6.

JBoss 5 est Java EE 5 et JBoss 6 et 7 sont Java EE 6 . La disparité des fonctionnalités API est mieux documentée dans ces spécifications. JBoss 6 aura probablement une durée de vie très courte; Il n'est certifié que pour le profil Web Java EE 6 et les corrections de bogues sont ciblées pour la version 7 (dans sa 3ème version bêta au moment de la rédaction).

Je pense que vous obtiendrez de meilleures réponses sur le forum de la communauté JBoss.







wildfly