FAQ pour les outils

Eclipse

Eclipse indique un manque de mémoire “OutOfMemoryError”

Certains plugiciels demandent plus de mémoire (profiler, etc.), vous pouvez augmenter les différents types de mémoires allouées à Eclipse en éditant le fichier eclipse.ini et en modifiant les paramètres “launcher.XXMaxPermSize”, “-XX:MaxPermSize”, “-Xms” et “-Xmx”.

Pour plus d’informations: http://wiki.eclipse.org/FAQ_How_do_I_increase_the_permgen_size_available_to_Eclipse%3F

Comment savoir si Eclipse utilise bien la bonne JDK

  1. Ouvrir Eclipse
  2. Menu ‘Help > About Eclipse’
  3. Installation Details > Configuration
  4. Recherche la ligne ‘java.home=’
    • Elle devrait contenir le chemin vers votre JDK suivit de ‘\jre’ (ex.: Windows: java.home=C:\Program Files\Java\jdk1.8.0_4\jre, Mac: java.home=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home)
    • Si elle pointe vers une JRE seule (ex.: java.home=C:\Program Files\Java\jre8) alors vous devez corriger la situation (continuez à lire)

Eclipse utilise la JRE plutôt que la JDK

Sous GNU/Linux Ubuntu, utilisez la commande update-java-alternatives pour utiliser la JDK en priorité.

Sous Windows, le problème est moins simple à régler. Essayer l’une ou plusieurs des solutions suivantes:

Maven

Dans Eclipse (M2Eclipse), les projets ne compilent pas à cause de dépendances introuvables (ou autre erreurs étranges)

Par défaut, M2Eclipse vient avec une version embarquée de Maven et c’est cette version qui est utilisée par défaut (et non pas celle externe que vous avez installée sur votre ordinateur). Cette version livrée a souvent des problèmes et ne devrait pas être utilisée.

Configurez Eclipse pour utiliser la version de Maven que vous avez installée (autant pour Windows, GNU/Linux et Mac). En supposant que vous avez installé Maven dans $HOME/bin/maven-3.0b3:

  1. Ajouter votre installation de Maven
    • Window > Preferences
    • Maven > Installations
    • Faire ‘Add…’ puis sélectionner le répertoire racine de Maven (ex.: $HOME/bin/maven-3.0b3/)
  2. Utiliser ce Maven par défaut
    • Cocher votre Maven (External …)
  3. Si vous avez déjà des profils d’exécution (Run > Run Configurations), vous devez changer le “Maven Runtime” pour “External …”. Les nouveaux profils créés après ces modifications utiliseront le Maven externe par défaut.

Le déboggeur ne fonctionne pas dans les tests

Par défaut Surefire (Maven) démarre un nouveau processus (fork) pour exécuter les tests et le dévermineur (déboggeur) de Eclipse n’est pas attaché à ce nouveau processus. Pour corriger le problème il faut forcer Surefire à rouler les tests dans le même processus (déconseillé quand on ne dévermine pas).

Pour cela, il faut passer le paramètre suivant à Maven:

forkMode=never

Pour plus d’informations ou pour des cas spéciaux, consultez la documentation de Surefire concernant le déverminage .

Web, REST et J2EE

Comment exécuter du code au démarrage d’une application web J2EE (avec web.xml)

Il faut utiliser l’interface ServletContextListener et référencer l’instance dans le web.xml.

Voir:

Qu’est-ce qu’un Servlet/ServletContainer (J2EE) ?

Quelques liens

En bref (peut-être un peu trop… consultez la doc)

Un Servlet Container (ou J2EE Web Container) est une sorte de serveur Java qui peut exécuter des applications web Java. Le container cherche simplement un web.xml qui décrit, notamment, les URI et les points d’entrées dans le programme.

Contrairement à des langages comme C++ qui n’ont aucune norme/API intégrée pour le développement d’applications WEB, Java permet de développer des applications web indépendantes de la plateforme et du serveur qui sera utilisé pour exécuter l’application.

Un Servlet est une abstraction qui est appelée automatiquement par Java (par le J2EE Container) pour répondre à une requête web. Il n’est donc pas nécessaire de gérer les Socket, le protocole HTTP, etc.