Troisième et dernier post de la série.
Vous allez mettre en œuvre votre première application Wicket grâce à Eclipse / Maven / Tomcat.

Création du « Projet Web Dynamique Wicket » grâce à Maven:

Menu [File / New / Other...]

Dans l’arborescence, sélectionner [Maven / Maven Project]

Sur l’écran de choix de l’archetype, sélectionner le catalog [Nexus Indexer] puis cliquer sur le bouton [Add Archetype...]

Renseigner l’écran avec les valeurs suivantes :
Archetype Group Id : org.apache.wicket
Archetype Artifact Id : wicket-archetype-quickstart
Archetype Version : 1.4-rc2

et valider.

De retour sur l’écran de choix de l’archetype, sélectionner l’archetype wicket fraichement créé, puis cliquer sur le bouton [Next]

Renseigner l’écran de paramétrage de l’archetype avec les valeurs suivantes :
Group Id : com.noocodecommit
Artifact Id : helloworld
Version : 0.0.1-SNAPSHOT
package : com.noocodecommit.wicket.helloworld

et cliquer sur le bouton [Finish]

Maven s’occupe alors de créer un projet, conformément à ce qui est défini dans l’archetype. Ce projet comporte normalement l’arborescence suivante :

Editez le fichier [Web Resources : src/main/webapp/web.xml] et remplacer le contenu par :

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
	version="2.4">
	<display-name>helloworld</display-name>
	<context-param>
		<param-name>configuration</param-name>
		<param-value>development</param-value>
		<!-- <param-value>deployment</param-value> -->
	</context-param>
	<filter>
		<filter-name>wicket.helloworld</filter-name>
		<filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class>
		<init-param>
			<param-name>applicationClassName</param-name>
			<param-value>com.noocodecommit.wicket.helloworld.WicketApplication</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>wicket.helloworld</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
</web-app>

Si l’installation du poste de travail est correcte, le plugin m2Eclipse à normalement récupéré les différentes dépendances définies dans le fichier pom.xml, ce qui permet à Eclipse de pouvoir compiler le projet.

Explication sur ce que maven a créé

L’utilisation de l’archetype [wicket-archetype-quickstart] a permis à Maven de créer un projet, avec une arboresence cohérente, ainsi que des fichiers par défaut. Les fichiers qui méritent une petite explication sont :

  • HomePage.java : la page d’accueil du site (partie java)
  • WicketApplication.java : la classe Application du site
  • HomePage.html : la page d’accueil du site (partie html)
  • Start.java : classe qui permet de lancer un jetty embarqué (pour ceux qui prefère …)
  • TestHomePage.java : une classe de Test Unitaire JUnit (vous pourrez vous en inspirer pour le reste de vos Tests Unitaires, par ce que vous en faites bien sûr?)
  • pom.xml : le fichier de Maven, où est défini tout son paramètrage pour votre projet

Déploiement

Nous allons maintenant déploier notre projet dans notre serveur Tomcat.

Dans la vue [Servers], faites un clic droit sur la ligne du serveur Tomcat et cliquez sur [Add and Remove Projects…]

Sélectionnez [helloWorld] dans la liste de gauche et cliquez sur le bouton [Add>]

Démarrez le serveur Tomcat, à l’aide du bouton [Start the server] (le bouton play) de la vue Servers

Votre serveur Tomcat est maintenant démarré (vérifiez tout de même qu’il n’y ai pas eu de message d’erreur dans la vue « Console »)

26 févr. 2009 09:24:37 org.apache.tomcat.util.digester.SetPropertiesRule begin
ATTENTION: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.j2ee.server:helloworld' did not find a matching property.
26 févr. 2009 09:24:37 org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jdk1.6.0_06\bin;.;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:/Program Files/Java/jdk1.6.0_06/bin/../jre/bin/client;C:/Program Files/Java/jdk1.6.0_06/bin/../jre/bin;C:\Program Files\Fichiers communs\OTG\;C:\Program Files\Java\jdk1.6.0_06\bin;C:\Program Files\groovy-1.5.6\bin;C:\Program Files\apache-maven-2.0.9\bin;C:\Program Files\Fichiers communs\OTG;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\windows\Matmut;C:\Program Files\PCom\;C:\Program Files\IBM\Trace Facility\;C:\Program Files\Microsoft SQL Server\90\Tools\binn\;C:\WINDOWS\system32\WindowsPowerShell\v1.0\;C:\Program Files\K-Lite Codec Pack\QuickTime\QTSystem\;C:\Program Files\Microsoft SQL Server\80\Tools\Binn\;C:\Program Files\Microsoft SQL Server\90\DTS\Binn\;C:\Program Files\Microsoft SQL Server\90\Tools\Binn\VSShell\Common7\IDE\;C:\Program Files\SlikSvn\bin\;C:\Program Files\apache-ant-1.7.0\bin;C:\Program Files\jadnt158
26 févr. 2009 09:24:37 org.apache.coyote.http11.Http11Protocol init
INFO: Initialisation de Coyote HTTP/1.1 sur http-8080
26 févr. 2009 09:24:37 org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 333 ms
26 févr. 2009 09:24:38 org.apache.catalina.core.StandardService start
INFO: D�marrage du service Catalina
26 févr. 2009 09:24:38 org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.18
INFO  - Application                - [WicketApplication] init: Wicket core library initializer
INFO  - RequestListenerInterface   - registered listener interface [RequestListenerInterface name=IBehaviorListener, method=public abstract void org.apache.wicket.behavior.IBehaviorListener.onRequest()]
INFO  - RequestListenerInterface   - registered listener interface [RequestListenerInterface name=IBehaviorListener, method=public abstract void org.apache.wicket.behavior.IBehaviorListener.onRequest()]
INFO  - RequestListenerInterface   - registered listener interface [RequestListenerInterface name=IFormSubmitListener, method=public abstract void org.apache.wicket.markup.html.form.IFormSubmitListener.onFormSubmitted()]
INFO  - RequestListenerInterface   - registered listener interface [RequestListenerInterface name=IFormSubmitListener, method=public abstract void org.apache.wicket.markup.html.form.IFormSubmitListener.onFormSubmitted()]
INFO  - RequestListenerInterface   - registered listener interface [RequestListenerInterface name=ILinkListener, method=public abstract void org.apache.wicket.markup.html.link.ILinkListener.onLinkClicked()]
INFO  - RequestListenerInterface   - registered listener interface [RequestListenerInterface name=ILinkListener, method=public abstract void org.apache.wicket.markup.html.link.ILinkListener.onLinkClicked()]
INFO  - RequestListenerInterface   - registered listener interface [RequestListenerInterface name=IOnChangeListener, method=public abstract void org.apache.wicket.markup.html.form.IOnChangeListener.onSelectionChanged()]
INFO  - RequestListenerInterface   - registered listener interface [RequestListenerInterface name=IOnChangeListener, method=public abstract void org.apache.wicket.markup.html.form.IOnChangeListener.onSelectionChanged()]
INFO  - RequestListenerInterface   - registered listener interface [RequestListenerInterface name=IRedirectListener, method=public abstract void org.apache.wicket.IRedirectListener.onRedirect()]
INFO  - RequestListenerInterface   - registered listener interface [RequestListenerInterface name=IRedirectListener, method=public abstract void org.apache.wicket.IRedirectListener.onRedirect()]
INFO  - RequestListenerInterface   - registered listener interface [RequestListenerInterface name=IResourceListener, method=public abstract void org.apache.wicket.IResourceListener.onResourceRequested()]
INFO  - RequestListenerInterface   - registered listener interface [RequestListenerInterface name=IResourceListener, method=public abstract void org.apache.wicket.IResourceListener.onResourceRequested()]
INFO  - RequestListenerInterface   - registered listener interface [RequestListenerInterface name=IActivePageBehaviorListener, method=public abstract void org.apache.wicket.behavior.IBehaviorListener.onRequest()]
INFO  - RequestListenerInterface   - registered listener interface [RequestListenerInterface name=IActivePageBehaviorListener, method=public abstract void org.apache.wicket.behavior.IBehaviorListener.onRequest()]
INFO  - WebApplication             - [WicketApplication] Started Wicket version 1.4-rc2 in development mode
********************************************************************
*** WARNING: Wicket is running in DEVELOPMENT mode.              ***
***                               ^^^^^^^^^^^                    ***
*** Do NOT deploy to your live server(s) without changing this.  ***
*** See Application#getConfigurationType() for more information. ***
********************************************************************
26 févr. 2009 09:24:38 org.apache.coyote.http11.Http11Protocol start
INFO: D�marrage de Coyote HTTP/1.1 sur http-8080
26 févr. 2009 09:24:38 org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
26 févr. 2009 09:24:38 org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/31  config=null
26 févr. 2009 09:24:38 org.apache.catalina.startup.Catalina start
INFO: Server startup in 470 ms

Test

Dans un Navigateur Web (par exemple Firefox), allez à l’adresse [http://localhost:8080/helloworld], vous devriez avoir le résultat suivant :

Lien vers l’épisode 1
Lien vers l’épisode 2

Imprimer cet article Imprimer cet article

  15 Responses to “Commencer avec Wicket – Quickstart (3/3)”

  1. [...] vers l’épisode 1 Lien vers l’épisode 3  Imprimer cet article [...]

  2. Alors moi j’ai une petite question : Qu’est-ce qui t’a fait changer d’avis sur Maven ?
    La question peut paraitre idiote ; il suffit de se renseigner un peu au produit pour voir qu’il est puissant, cependant je pense que ça peut intéresser certains.

  3. Alors, pourquoi j’ai donné sa chance à Maven. En fait, je suis persuadé que les concepts de Maven sont très bons. Cependant la “courbe d’apprentissage” est tellement longue que tu as vite fait d’abandonner, faute de temps pour te prendre la tête à comprendre pourquoi ca ne marche pas.

    Mais, j’ai découvert récemment que le plugin m2eclipse s’est beaucoup amélioré, et il permet maintenant de travailler facilement avec Eclipse et Maven.

    J’ai donc remis les mains dedans, et je pense que d’avoir bosser un peu avec Ivy m’a aidé à comprendre certaines choses.

    Une fois que tu arrive à faire marcher des choses simples, après c’est gagné! (bon je t’avoue que je m’aide très souvent des pom.xml de wicket comme inspiration :p)

  4. Okidoki, c’est vrai que le plugin m2eclipse fonctionne pas mai. Moi qui suis débutant Maven, j’ai vite pris mes repères.

  5. J’ai eu un problème avec l’archétype. Le plugin ne le trouve pas si on ajoute pas l’url du repository : http://repo1.maven.org/maven2

    Sinon tout le reste fonctionne au poil. Merki !!

  6. Bien vu Kokoni!

    Dès que j’ai 5 minutes je met à jour le tuto. Merci ma loutte.

  7. [...] projet Maven en choisissant l’archetype qui va bien. Comme indiqué dans ce très bon tutorial sur noocodecommit que je ne vais pas perdre de temps à [...]

  8. [...] QuickStart (part 3/3) [...]

  9. Avec la remarque de kokoni ca marche bien.
    Il faut juste enlever le package wicket lors de la déclaration de l’application dans le web.xml :

    com.noocodecommit.helloworld.WicketApplication

  10. Ca ne marche pas. Comme tous les projets Java sous Eclipse en fait.

  11. Plus exactement ça marche la deuxième fois qu’on prend tout à zéro. Comme tous les projets Java sous Eclipse en fait.

  12. [...] créer un projet Maven avec l’archetype Wicket (version 1.3.6 pour cet [...]

  13. Salut,
    je ne sais pas si on me lira mais quand je veux ajouter le projet au serveur, j’ai le message suivant:
    “There are no resources that can be added or removed from this server”
    A priori Eclipse ne voit pas le projet comme un projet Web, je ne sais pas comment résoudre le problème.

  14. Bonjour j’ai suivi le tuto à la lettre pour jetty il n’y a pas de problème ça marche mais pas avec tomcat j’ai le message d’erreur “There are no resources that can be added or removed from this server ” pouvez-vous m’aidez?.
    merci.

 Leave a Reply

(required)

(required)


+ 1 = ten

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">

   
© 2011 NooCodeCommit Suffusion theme by Sayontan Sinha