Plantage Spring upgrade 3.0.x to 3.1.x NoSuchFieldError

Après une mise à jour vers la nouvelle version de Spring 3.1, si vous avez l’erreur « java.lang.NoSuchFieldError: NULL »

Il faut vérifier que la librairie spring-expression est bien à jour. Maven ne le fais pas automatiquement.

Si ce n’est pas déjà fait, inclure la dépendance spring-expression avec la bonne version.

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>3.1.2.RELEASE</version>
<scope>compile</scope>
</dependency>

Les livres indispensables pour comprendre l’outil Apache Maven

Apache Maven est l’outil open-source qui apporte aux développeurs une gestion et une automatisation des principales tâches nécessaires à la mise en oeuvre et au déploiement d’un projet Java:

  • Développement
  • Documentation
  • Test Unitaire
  • Intégration Continue
  • Rapports Statistiques
  • Déploiement automatique

Contrairement à l’outil Ant qui permet d’automatiser des actions procédurales qu’il faut à adapter à la structure de chaque projet Java, Maven préconise un certain nombre de conventions à adopter plutôt qu’une configuration spécifique à chaque projet. De ce fait,  Maven uniformise les projets et impose de facto un standard et une méthodologie approuvée et reconnue dans le monde Java.

Je suis actuellement en train d’explorer cet univers et je vous propose dans cet article une liste (non exhaustive) des quelques références que j’ai jugé utile sur le sujet…

Lire la suite

Une usine logicielle pour mes applications Web J2EE

Développeur Java depuis quelques années, je développe des applications J2EE basées sur le serveur d’application Tomcat. Au fur et à mesure que mes projets grossissent (qui a dit usine à gaz? ;-)), je suis de plus en plus souvent confronté aux mêmes tâches répétitives de livraison de mes archives WAR et je passe de plus en plus de temps à réaliser différents tests de non-régression de chacune  de mes versions.  Depuis quelques temps, je cherche donc à rationaliser et simplifier le développement et le déploiement de mes applications Web Java en automatisant les différents étapes nécessaires à la mise en production.

Lire la suite

Performance de la fonction SQL batchUpdate de Spring

Cette semaine, j’ai du mettre à jour un batch d’import de données d’un fichier plat dans une base de données. L’optimisation de ce script n’ayant jamais été une priorité, le batch importait environ 60000 lignes et prenait entre 15 et 20 minutes. En quelques ajustement, j’ai réussit à importer plusieurs centaines milliers de lignes en à peine quelques minutes. Aussi étonnant que cela puisse paraître, l’optimisation d’un tel script ne nécessite pas de connaissances particulières ni même de mettre en place une solution de multi-threading utilisant les ordinateurs de la NASA ou ceux de Google. Tout est proposé de manière native au sein de la librairie JDBC (depuis la version 2) et permet le traitement par lot des requêtes SQL . Par conséquent, toute les solutions reposant sur cette API de connexion à un base de donnée peuvent également utiliser cette fonctionnalité, que ce soit JdbcTemplate pour Spring ou encore Hibernate.

Lire la suite

Accéder au contexte Spring depuis une JSP TagLibs JSTL

Lors d’un développement d’un projet web Spring, si vous utilisez les JSP, il est parfois utile de créer vos propres librairie de tag (ou taglibs). Malheureusement, au sein de ces taglibs,  il ne vous est pas possible d’accéder simplement au contexte d’application Spring pour y récupérer vos beans. Spring MVC met à disposition différentes solutions pour accéder aux contextes d’application que ce soit pour vos beans, vos traduction de Messages (MessageSource), votre Locale ou encore votre Theme.

Lire la suite