Tags

NodeJS vs Java EE pour une application web
NodeJS vs Java EE pour une application web


Depuis 2009, NodeJS a envahi le petit monde du développement web, et petit à petit fait son trou parmi les plateformes de référence pour réaliser une application, site ou API de services. Le vieux Java EE résiste pourtant, et quiconque souhaite aujourd’hui démarrer un nouveau projet peut se confronter à cette problématique : NodeJS ou Java EE ? C’est cette question que nous nous proposons de trancher, ou plus modestement d’éclairer de quelques éléments de comparaison qui permettront de structurer la réflexion des décideurs sur les points critiques à prendre en compte en vue de ce choix.

Lire la suite…



JAVA vs PHP pour la création d’une application web ou site web en 2014

Dans cet article, nous allons comparer de la manière la plus objective possible deux langages et technologies de programmation pour la réalisation d’un site web ou d’une application web en 2014. L’idée est de comparer les deux solutions Open Source et gratuit d’un point de vue décideur et développeur afin d’essayer d’y voir plus clair. A minima, connaitre les points forts et les points faible. Pour les deux langages, nous prendrons les versions à jour, c’est-à-dire JAVA 8 et PHP 5.

Lire la suite…



Projet JEE 7 sans hibernate ni JPA

Dans cet article, nous allons étudier la possibilité de créer un projet JEE 7 classique mais en supprimant la partie JPA / Hibernate. Pourquoi se passer d’Hibernate? JPA / Hibernate vient avec la promesse d’une simplication drastique de l’utilisation des bases de données avec un modèle ORM et une API de criteria sensée faciliter la vie des développeurs ainsi que la maintenance des applications. A l’usage, les choses se révèlent moins magiques que prévues et de nombreux problèmes viennent compliquer l’utilisation de cette technologie.

Lire la suite…



Hibernate 4 – Héritage – Mapping et stratégies
Hibernate 4 – Héritage – Mapping et stratégies


Dans une base de données relationnelle, il est souvent intéressant de faire de l’héritage. Mais comment peut-on représenter cet héritage avec Hibernate 4 ? Plusieurs stratégies existent, qui correspondent chacune à une représentation différente dans le modèle de données. 1 – Contexte Pour détailler les différents mappings proposés par Hibernate, on prendra l’exemple d’une entité « employe » dont héritent deux entités : « technicien » et « ingenieur ». Les classes correspondantes sont Employe, Technicien et Ingenieur.

Lire la suite…



JSF 2 – Redirect HTTP 404 de manière programmatique

Il n’est pas forcément évident de faire un redirect 404 de manière programmatique en JAVA.  Un des principaux cas d’utilisation est lorsqu’on utilise un url rewritting pour générer des liens vers des pages web. Il peut arriver que la page web n’existe pas ou n’existe plus mais que la redirection (par exemple avec pretty-faces) vous a déjà fait calculer une partie de la page. Il devient dès lors très compliqué d’envoyer proprement une 404 au navigateur et non pas un simple message d’erreur.

Lire la suite…



jBoss EAP 6.2 – Déployer des applications par script avec la console CLI
jBoss EAP 6.2 – Déployer des applications par script avec la console CLI


Dans cet article nous allons voir comment deployer des applications WAR ou EAR avec la CLI (Command Line Interface) de jBoss. Il est souvent nécessaire pour se faciler l’exploitation de serveur jBoss, de scripter (en bash par exemple) un certain nombre d’étapes. JBoss met à disposition un console (CLI) qui permet d’exécuter des scripts en mode line de commande ou batch. CLI est très puissante et permet de faire énormement de manipulation du serveur.

Lire la suite…



La clause HAVING en Hibernate 4
La clause HAVING en Hibernate 4


Comment utiliser la clause SQL HAVING avec Hibernate 4 ? Rappel théorique En SQL, lorsqu’une requête possède une condition sur une colonne sur laquelle porte une clause GROUP BY, cette condition n’est pas exprimée dans la clause WHERE mais dans la clause HAVING. En pratique Si vous savez faire une requête simple avec Hibernate 4, écrire une condition simple et utiliser la clause GROUP BY, la mise en place d’un HAVING ne vous posera pas de problème.

Lire la suite…



Supprimer les jsessionid dans les url et pretty faces pour le référencement
Supprimer les jsessionid dans les url et pretty faces pour le référencement


Le problème des jsessionid dans les urls Comportement des jsessionid Ceci n’est pas un bug mais le fonctionnement de base de JEE qui crée une session. Ne sachant pas si le navigateur du client possède la fonctionnalité des cookies, java préfère passer la session dans l’url. Problème pour le référencement Pour le référencement ceci peut être panélisable car ceci crée des urls peu référencable. Afin de maximiser le référencement, il est donc préférable de supprimer la variable jsessionid des url générées par le serveur.

Lire la suite…



JBOSS EAP – Déployer une application à la racine du serveur
JBOSS EAP – Déployer une application à la racine du serveur


Dans cet article, nous verrons comment déployer un archive war (un projet) à la racine du serveur JBOSS Le fichier jboss-web.xml Première étape, la plus simple, configurer dans votre fichier de déployement d’application jboss-web.xml pour que le pointe vers /. Voici un exemple simple de mon fichier jboss-web.xml < jboss-web> < context-root>< /context-root> < security-domain>java:/jaas/diagergo-security< /security-domain> < /jboss-web>   Si vous deployez votre application ainsi, vous obtiendrez une erreur de jboss vous expliquant qu’il existe déjà une application deployée sur le context-path root.

Lire la suite…



Le multiselect avec Hibernate 4
Le multiselect avec Hibernate 4


Nous avons vu dans l’article « Les requêtes avec Hibernate 4 » comment réaliser une requête ramenant soit un champ soit tous les champs (SELECT *). Voyons à présent comment ramener plusieurs champs mais pas tous. Le code côté Hibernate Pour ce faire, nous avons recours à la fonction multiselect() de la classe CriteriaQuery. Cette fonction prend en paramètres soit une List de champs, soit n paramètres représentant des champs ou des fonctions.

Lire la suite…