Comment faire un WebService De A à Z en passant par les JPA :p

Hello, Hello

J’ai décider que mon premier tutoriel ne serais pas dédier au PHP, non ! ni à .NET, non plus ! Mais à JAVA, pour changer ^^. Je trouve qu’il est pas mal, il apporte de bon outil mais cependant mon affection restera quand même a PHP et .NET même si ce soir je fais l’inpordonnable !

Commençons, tout  abord expliquons un peu notre sujet. Oui à mon sens pas de tutoriel si on n’a pas un sujet pour imager nos propos.

Sujet : Vous décidez de créer un webservice où les gens pourrons y déposer leur citations ou le sommet de leur vie.

Voilà 5 minutes pour trouver ça !

Maintenant que l’on le sujet passons aux outils

Pour ma part je vais utiliser :

– JAVA (but du tutoriel)

-Eclipse (oui, je sais y a plus performant 😉 )

– La librairie Hibernate (pour la persistance )

-La librairie Jersey (pour le webservice)

-Tomcat 7 (comme serveur web)

-Mysql (comme SGBDR)

Le sujet est posé les outils sont définis. Allons y gaîment !

Rappelons que nous partons de … rien. donc nous allons créer notre projet petit rappel nous allons faire un web dynamic project.

Nom de projet : tutoriel (oui me suis pas foulé )

Etape 1 : Créer nos packages

Pour ma part je vous conseil de suivre les même que moi pour qu’on sois sur la même architecture

NB : rappel pour nommé les packages

par exemple : com.monprojet.monbibule.cequonveut

attention pas de majuscule dans un nom de package !

donc mes packages :

– com.josselinchevalay.tutoriel.dao

-com.josselinchevalay.tutoriel.jpa => ( pour les best pratice préférer mettre  com.josselinchevalay.tutoriel.dao.jpa)

-com.josselinchevalay.tutoriel.entity

-com.josselinchevalay.tutoriel.util

-com.josselinchevalay.tutoriel.rest

voilà si vous mettez ça on a le même projet

Ouf  l’étape 1 arrive à son terme.

Etape 2 : mettre les librairies et lies liées

cette partie va vous demander des recherches sur le net allez hop sur google !

votre mission : Trouver Jersey et Hibernate pour votre projet.

une fois trouver glisser le tout dans

WebContent/WEB-INF/lib/

Donc rappelle : Pour le tutoreil là il faut Jersey et Hibernate sinon on va pas plus loin !

Voilà vous avez apporter les fichier nécessaire ne partais pas trop loin !

vu qu’on ce situe dans  WebContent/WEB-INF/lib/

nous allons juste un répertoire au-dessus y mettre un fihcier magique les web.xml

Qu’est ce que ce fichier ? 

Jusqu’à l’arriver des annotations dans les servlets pour permettre au client qui voulez utiliser votre site en java il fallait créer ce fichier dans sont principe il faut le voir comme un fichier qui fait le lien entre url et un objet d’un de vos package.

on peut l’apparenter à un ficher de routing sous un MVC ( par exemple Symfony 2  pub au passage ! ).

Si vous souhaiter un point d’éclairage sur cela mettez des commentaire je ferais un cour ou un tutoriel là-dessus.

bon nous allons donc créer ce fichier :

<?xml version= »1.0″ encoding= »UTF-8″?>
<web-app xmlns= »http://java.sun.com/xml/ns/j2ee &raquo; xmlns:xsi= »http://www.w3.org/2001/XMLSchema-instance &raquo;
xsi:schemaLocation= »http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_3_0.xsd &raquo; version= »3.0″>
<servlet>
<servlet-name>Jersey Web Application</servlet-name>
<servlet-class>
com.sun.jersey.spi.container.servlet.ServletContainer
</servlet-class>
<init-param>
<param-name>
com.sun.jersey.config.property.packages
</param-name>
<param-value>com.josselinchevalay.tutoriel.rest</param-value>
</init-param>
</servlet>

<servlet-mapping>
<servlet-name>Jersey Web Application</servlet-name>
<url-pattern>/resources/*</url-pattern>
</servlet-mapping>
</web-app>

Bon là je peut sentir que certain on perdu connaissance ! Pas de sushi les amis tout va bien !

expliquons un peu ce pâté indigeste à souhait ^^ :

on remarque que la balise <Servlet> apparaît a plusieurs reprise, tout simplement c’est parce qu’elle représente certains objet de la libraire jersey que l’on va utiliser dans notre projet et nos propre objet qui nous offrirons des fonctionnalités. Ensuite on repere <Servlet-mapping> très simplement c’est la balise qui permet de faire le lien entre une url et un package.

Maintenant intéressons-nous aux deux lignes en gras. La première nous indique le package cible de notre projet qui fournira les classe qui créerons le webservice.

mettez y ce qui suit :

com.josselinchevalay.tutoriel.rest

pour la deuxième ligne, vous pouvez la changer mais je vous conseil de la laisser telle qu’elle.

Petit récapitulatif de ce qu’on a fait jusqu’à maintenant :

Récapitulatif de la partie Jersey

Si vous possédez à peu près  la même chose on passe à l’étape Hibernate.

Pour Hibernate il va falloir vous placez dans le répertoire src/

Nous allons crée un répertoire META-INF. Une fois crée mettez y un fichier xml qui s’intitule persistence.xml

<?xml version= »1.0″ encoding= »UTF-8″?>
<persistence xmlns= »http://java.sun.com/xml/ns/persistence &raquo; version= »2.0″>
<persistence-unit name= »tutoriel-PU » transaction-type= »RESOURCE_LOCAL »>
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<properties>
<property name= »javax.persistence.jdbc.driver » value= »com.mysql.jdbc.Driver » />
<property name= »javax.persistence.jdbc.user » value= »root » />
<property name= »javax.persistence.jdbc.password » value= » » />
<property name= »javax.persistence.jdbc.url » value= »jdbc:mysql://localhost:3306/tutoriel » />
<property name= »hibernate.hbm2ddl.auto » value= »update » />
<property name= »hibernate.dialect » value= »org.hibernate.dialect.MySQL5Dialect » />
</properties>
</persistence-unit>
</persistence>

Waouh du code !  pas de souci nous allons expliquer un peu ce code :

La première ligne en gras : nous précise le nom est donc l’identificateur du persistence unit qu’on utilise. A savoir un chose  pour la suite, c’est par ce même nom que nous allons utilisé le persistence unit donc retenais le bien.

Pour les lignes javax.persistence.jdbc permettre de configurer la connexion, donc il suffit de mettre vous identifiant et nom de la base de donné comme vous voulez utilisé ou créer.

La dernière ligne permet de définir le niveau d’action de votre Hibernate. En clair si il a droit de crée la base ou non.

L’autre valeur possible et create (il pourra la créer).

Conclusion : On viens de finir la deuxième !

Je pense que pour plus de clarter je vais créer une autre page :p

 

Publicités

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s