lundi 24 mars 2014

Regex pour téléphone en France

Mon expression régulière pour un numéro de téléphone en France qui n'est pas un numéro spécial, ni court.
^(0033|\+33|0)[1-79][0-9]{8}$

vendredi 7 février 2014

Erreur personnalisée pour un service web

Il est possible de personnaliser une erreur retournée par un service web. Pour cela il faut définir dans le WSDL un élément fault dans l'opération.

J'ai créé un exemple sur Github : https://github.com/lnplnp/HelloWorldWS

Cet exemple illustre aussi le fait que si une restriction est décrite dans le WSDL alors il n'est pas possible d'attraper l'exception levée par le code généré dans le code "métier".

J'ai finalement complété le code avec un exemple de gestion des restrictions décrites dans le WSDL depuis le code généré. L'inconvénient de cette méthode : si on met à jour le WSDL, la re-génération du code source supprimera cette gestion des restrictions.
Faute de trouver mieux pour le moment, je garde cette solution ! Si vous avez une meilleure solution, je suis preneur.

Je n'étais pas satisfait du fait d'utiliser une variable statique pour passer le message d'erreur. Finalement, je me suis dis qu'en attribuant un message à la RuntimeException, ce message se propagerait de manière plus sûre.

mercredi 29 janvier 2014

Mise en place de la journalisation dans un projet Vaadin 7 avec Spring

J'ai envie de mettre en place la journalisation dans un de mes projets Vaadin 7 avec Spring.
Dans un premier temps voilà la description des librairies que j'utilise pour le projet : Je met aussi un fichier "/src/main/resources/logging.properties" :

Mise en place de l'authentification dans un projet Vaadin 7 avec Spring

Vaadin project with Spring and Handling login with Spring

vendredi 1 novembre 2013

GWT avec Spring, Hibernate et Maven... pour une application qui a une authentification utilisateur

Je suis deux tutoriels qui se trouvent ici : http://blog.guillaumeleone.fr/category/gwt/
  1. Architecture GWT avec Spring, Hibernate et Maven
  2. GWT : Créer une authentification utilisateur
Les références utilisées pour arriver au bout des tutoriels : 
J'ai recréé les projets en utilisant les lignes de commandes suivantes :
 - "mvn archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-quickstart", pour les projets projet.parent et projet.core
 - "mvn archetype:generate -DarchetypeGroupId=org.codehaus.mojo -DarchetypeArtifactId=gwt-maven-plugin -DarchetypeVersion=2.5.1", pour le projet projet.gwt

Cela a l'air de mieux fonctionner qu'en passant directement par Eclipse. Je n'ai peut-être pas su utiliser le plugin dans Eclipse ? !


mercredi 21 août 2013

Ce que le tutoriel Hibernate ne dit pas...

Vous trouverez ici le projet Eclipse résultant du suivi du tutoriel Hibernate.

Lien vers le tutoriel : http://docs.jboss.org/hibernate/core/4.3/manual/en-US/html_single/#tutorial-firstapp.
Il est possible que le tutoriel lui-même ne soit pas à jour et il est possible que je ne mette pas moi-même à jour le projet et cet article pour y faire figurer les évolutions du framework, d'Eclipse, de Maven et des autres outils et librairies utilisées.

J'ai mis ma version du projet sur Github : https://github.com/lnplnp/HibernateTutorial. Vous trouverez dans les commentaires des commits certaines informations qui ne figurent pas dans cet article.

Tout d'abord l'environnement dans lequel j'ai développé ce projet :

  • Windows Seven Pro
  • eclipse-jee-juno-win32-x86_64
  • ...

mardi 16 juillet 2013

GIT PUSH sur tous les projets

@echo off
echo "PUSH ALL"
for /d %%i in (*) do git --git-dir="%%i\.git" push --verbose


Un petit script pour faire un GIT PUSH sur tous les projets... Pratique ! ;o)

jeudi 25 avril 2013

Requête MSSQL pour créer une sauvegarde d'une base de données dans un fichier dont le nom comporte la date du jour

Ce qui m'a intéressé, c'est de pouvoir mettre en place un nom de fichier configurable... voilà comment faire :

Attention !
  • Le @MyFileName 'varchar(255)' détermine le nombre de caractères dans le chemin complet...
  • "WITH NOFORMAT, NOINIT, NAME = N'NomDeLaBase-Complète Base de données Sauvegarde', SKIP, NOREWIND, NOUNLOAD, STATS = 10" : n'est pas obligatoire... ce sont des options à déterminer vous même pour faire d'autres genres de sauvegarde

jeudi 4 avril 2013

Parce qu'on ne peut pas toujours se passer d'Internet Explorer de Microsoft

Internet Explorer a des limites et au cours de mon voyage sur la toile, je les découvre... il est bon de les connaître ! Alors voilà :
  • IE8 n'accepte pas les URLs qui contiennent plus de 2083 caractères
  • Internet Explorer ne lit plus au delà de 32 feuilles de styles (fichiers CSS)... si on référence plus de 32 feuilles de styles dans une page, la 33ème et les suivantes ne seront pas prises en compte.
  • 4096 sélecteurs par fichier CSS : ceci dit si vous arrivez à faire 131072 sélecteurs pour une seule page (32 feuilles qui compte chacune 4096 sélecteurs), voir même pour un site entier... c'est qu'il y a un problème de conception... en tout cas, grâce à Internet Explorer vous êtes obligé d'y penser. C'est un mal pour un bien, de mon point de vue !

mercredi 27 mars 2013

Documents MS Office compressés au format ZIP

J'ai été un peu étonné que mon collègue m'apprenne cela... mais cela explique certaines choses : les documents MS Office 2007 et plus récent sont plus légers.

Faites une petite expérience : prenait un document PowerPoint, un fichier en .PPTX, renommer le fichier en .ZIP et voilà ! Vous pourrez voir de quoi est composé le document.
Cela fonctionne avec les .DOCX, XSLX, PPTX, ...

Cette manière de faire explique donc que les nouveaux fichiers MS Office sont plus légers...

Ceci permet de récupérer éventuellement les différents composants du document que vous aurez préalablement transformer en .ZIP.