IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JPA Java Discussion :

Application Hibernate/JPA - Spring2.5 - Tapestry5 [Tutoriel]


Sujet :

JPA Java

  1. #1
    Expert éminent sénior


    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    7 856
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 856
    Points : 34 380
    Points
    34 380
    Par défaut Application Hibernate/JPA - Spring2.5 - Tapestry5
    Bonjour à tous,

    Loïc Frering et Baptiste Meurant vous proposent l'article suivant qui concerne le développement d'applications web avec le triplet Hibernate/JPA - Spring - Tapestry, mise en place de projet avec Maven 2.

    http://loic-frering.developpez.com/t...ring-tapestry/

    N'hésitez pas à commenter cet article.

  2. #2
    Membre à l'essai
    Profil pro
    crut
    Inscrit en
    Mars 2003
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : crut
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2003
    Messages : 28
    Points : 22
    Points
    22
    Par défaut
    Un grand merci pour ce tutoriel qui permet de découvrir les technologies et de les utiliser dans un projet.
    Je suis friand de ce genre de tutoriaux car ils me permettent de m'auto-former.

    Le dernier sur netbeans 6.5 et les EJB3 était aussi très bon.

    Merci à vous qui prenez le temps de nous faire partager vos connaissances et votre expérience.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2009
    Messages : 3
    Points : 3
    Points
    3
    Par défaut création du projet dans eclipse...
    Je suis bloqué dès le début.
    Je ne parviens pas à créer mon projet le projet dans eclipse...
    Avez vous réussi?

    Merci

  4. #4
    Candidat au Club
    Inscrit en
    Avril 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Merci + proposition
    Bonjour,

    merci pour ce tutorial clair et synthètique pour se lancer dans les grosses applications Web en Java avec Tapestry !

    Proposition pour améliorer la lisibilité du code: on peut factoriser les méthodes génériques des DAO dans un GenericDao et un GenericDaoImpl grace aux generics.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    public interface GenericDao<T, PK> {
     
    	/**
             * Synchroniser/ajouter l'état des objets de l'entityManager en base de données
             * 
             * @throws DataAccessException
             */
    	public void flush();
     
     
    	/**
             * Preparer un objet pour la base de données
             * 
             * @param o
             * @throws DataAccessException
             */
    	public void persist(T o);
     
     
     
    	/**
             * Supprimer un objet de la base de données
             * 
             * @param o
             * @throws DataAccessException
             */
    	public void remove(T o);
     
    	/**
             * Charger un objet persistant dont l'identifiant correspond à id
             * (renvoie null si l'identifiant n'existe pas)
             * 
             * @param id
             * @return
             * @throws DataAccessException
             */
    	public T find(PK id);
     
     
    	/**
             * Charge tous les objets persistants du type spécifié par le composant DAO
             * 
             * @return List
             * @throws DataAccessException
             */
    	public List<T> findAll();
     
     
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
     
    @Repository
    public abstract class GenericDaoImpl<T, PK> implements GenericDao<T, PK> {
     
    	protected Class<T> type = null;
    	private static final Log log = LogFactory.getLog(GenericDaoImpl.class);
     
    	@PersistenceContext
    	protected EntityManager em;
     
    	/**
             * Contructeur sans paramètre. Le type effectif T est retrouvé par réflexion
             * générique.
             */
    	protected GenericDaoImpl() {
    		this.type = this.getParameterizedType(this.getClass());
    	}
     
    	/**
             * Traitement de réflexion générique. Détermine et positionne le type
             * manipulé par ce gestionnaire.
             */
    	@SuppressWarnings("unchecked")
    	private Class<T> getParameterizedType(Class clazz) {
    		Class<T> specificType = null;
    		ParameterizedType parameterizedType = (ParameterizedType) clazz
    				.getGenericSuperclass();
    		specificType = (Class<T>) parameterizedType.getActualTypeArguments()[0];
    		return specificType;
    	}
     
    	public void flush() {
    		em.flush();
    	}
     
    	public void persist(T o) {
    		em.persist(o);
    	}
     
    	public void remove(T o) {
    			em.remove(o);
    	}
     
    	@SuppressWarnings("unchecked")
    	public T find(PK primaryKey) {
    		log.debug("Getting " + type.getCanonicalName() + ": " + primaryKey.toString());
    		return em.find(type,primaryKey);
    	}
     
    	@SuppressWarnings("unchecked")
    	public List<T> findAll() {
    		return (List<T>) em.createQuery(
    				"SELECT x FROM " + type.getSimpleName() + " x").getResultList();
    	}
     
    	@SuppressWarnings("unchecked")
    	protected List<T> getEntityList(String queryString) {
    		Query query = em.createQuery(queryString);
    		return (List<T>) query.getResultList();
    	}
     
    	@SuppressWarnings("unchecked")
    	protected T getSingleEntity(String queryString) {
    		Query query = em.createQuery(queryString);
    		return (T) query.getSingleResult();
    	}
    }

  5. #5
    Candidat au Club
    Inscrit en
    Avril 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par thegeniusone Voir le message
    Je suis bloqué dès le début.
    Je ne parviens pas à créer mon projet le projet dans eclipse...
    Avez vous réussi?

    Merci
    Que n'arrives-tu pas à faire ?
    - installer les plugins ? (et donc voir maven dans le menu New)
    - créer le projet Eclipse en utilisant le plugin m2 ?

  6. #6
    Membre à l'essai
    Inscrit en
    Décembre 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 10
    Points : 11
    Points
    11
    Par défaut
    Bonjour à tous et merci pour les retours

    Rickou : Nous n'avons effectivement pas utilisé les GenericDao mais je suis d'accord que pour une prochaine itération, cela pourrait être intéressant, ça allégerait nos DAO spécifiques et éviterait de se répéter

    thegeniusone : il me semble avoir répondu à ton problème lorsque tu m'as envoyé un message perso -> étais-ce bien là la cause de ton soucis ?

  7. #7
    Nouveau Candidat au Club
    Inscrit en
    Avril 2009
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 1
    Points : 1
    Points
    1
    Par défaut classnotfound "org.apache.tapestry5.spring.TapestrySpringFilter"
    Bonjour,
    J’ai essayé de dérouler le tutoriel « Tutoriel Hibernate/JPA - Spring2.5 - Tapestry5 » (du 16/12/2008 , par Loïc Frering & Baptiste Meurant)

    J'arrive sans problème jusqu'à l'étape "2-3-2. Premier test avec la configuration par défaut"
    La page web s'affiche, j'obtiens bien "skillbrowser Start Page"
    (Au passage il ne faut pas oublier d'installer le plugin eclipse « Maven Integration for WTP » à partir de http://m2eclipse.sonatype.org/update)

    La ou ça se complique, c'est pour les parties 2-3-3. Configuration de Tapestry / 2-3-4. Page d'accueil
    J'effectue les actions suivantes :
    -> Modification du web.xml comme indiqué
    -> Création de la classe Index.java comme indiqué
    -> Création du fichier Index.tml (ici un petit doute : il est indiqué qu'il faut créer ce fichier dans src/main/resources or il me parait plus logique de le créer dans src\main\webapp)

    Je démarre Tomcat, et là, patatra, j'obtiens l'erreur suivante :
    "java.lang.ClassNotFoundException: org.apache.tapestry5.spring.TapestrySpringFilter"
    Comme cette classe fait partie du package tapestry-spring, dans mon pom.xml, je décide de remplacer :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <dependency>
                <groupId>org.apache.tapestry</groupId>
                <artifactId>tapestry-core</artifactId>
                <version>${tapestry-release-version}</version>
            </dependency>
    par
     <dependency>
                <groupId>org.apache.tapestry</groupId>
                <artifactId>tapestry-spring</artifactId>
                <version>${tapestry-release-version}</version>
     </dependency>
    (tapestry-spring a une dépendance sur tapestry-core)

    Je redemarre tomcat, et ici j'obtiens l'erreur suivante :
    java.lang.NoClassDefFoundError: org/springframework/web/context/WebApplicationContext
    hum hum
    En cherchant un peu, je me rend compte que "tapestry-spring 5.1.0.2" (et non pas 5.0.15) a une dépendance sur "spring-web 2.5.6" (qui contient org/springframework/web/context/WebApplicationContext)
    Je tente le coup et je passe donc avec une tapestry-release-version 5.1.0.2

    Je redemarre tomcat, et cette fois j'ai l'erreur suivante :
    context.ContextLoader Context initialization failed
    org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from ServletContext resource [/WEB-INF/applicationContext.xml]; nested exception is java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/applicationContext.xml]
    Mais dans le tutorial il n'est pas mentionné de fichier "applicationContext.xml" à configurer (est-ce implicite?)

    Voilà. Pouvez vous m'aider sur ce point? Suis-je sur la bonne piste?

    Merci pour votre aide!

    Mon web.xml :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE web-app
            PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
            "http://java.sun.com/dtd/web-app_2_3.dtd">
    <web-app>
        <display-name>SkillBrowser</display-name>
     
    	<context-param>
    	    <!-- The only significant configuration for Tapestry 5, this informs Tapestry of where to look for pages, components and mixins. -->
    	    <param-name>tapestry.app-package</param-name>
    	    <param-value>net.ilabs.skillbrowser.web</param-value>
    	</context-param>
     
    	<filter>
    	    <filter-name>app</filter-name>
    	    <filter-class>org.apache.tapestry5.spring.TapestrySpringFilter</filter-class>
    	</filter>
     
    	<filter-mapping>
    	    <filter-name>app</filter-name>
    	    <url-pattern>/*</url-pattern>
    	</filter-mapping>
     
    	<welcome-file-list>
    		<welcome-file>Index</welcome-file>
    	</welcome-file-list>
    </web-app>
    Mon pom.xml final


    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
     
    <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0">
        <modelVersion>4.0.0</modelVersion>
        <groupId>net.ilabs</groupId>
        <artifactId>skillbrowser</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <packaging>war</packaging>
        <name>skillbrowser Tapestry 5 Application</name>
        <dependencies>
            <!-- <dependency>
                <groupId>org.apache.tapestry</groupId>
                <artifactId>tapestry-core</artifactId>
                <version>${tapestry-release-version}</version>
            </dependency> -->
    		 <dependency>
                <groupId>org.apache.tapestry</groupId>
                <artifactId>tapestry-spring</artifactId>
                <version>${tapestry-release-version}</version>
            </dependency>
            <!-- A dependency on either JUnit or TestNG is required, or the surefire plugin (which runs the tests)
    will fail, preventing Maven from packaging the WAR. Tapestry includes a large number
    of testing facilities designed for use with TestNG (<a href="http://testng.org/" target="_blank">http://testng.org/</a>), so it's recommended. -->
            <dependency>
                <groupId>org.testng</groupId>
                <artifactId>testng</artifactId>
                <version>5.1</version>
                <classifier>jdk15</classifier>
                <scope>test</scope>
            </dependency>
     
        </dependencies>
        <build>
            <finalName>skillbrowser</finalName>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <configuration>
                        <source>1.5</source>
                        <target>1.5</target>
                        <optimize>true</optimize>
                    </configuration>
                </plugin>
     
                <!-- Run the application using "mvn jetty:run" -->
                <plugin>
                    <groupId>org.mortbay.jetty</groupId>
                    <artifactId>maven-jetty-plugin</artifactId>
                    <version>6.1.9</version>
                    <configuration>
                        <!-- Log to the console. -->
                        <requestLog implementation="org.mortbay.jetty.NCSARequestLog">
                            <!-- This doesn't do anything for Jetty, but is a workaround for a Maven bug
                                 that prevents the requestLog from being set. -->
                            <append>true</append>
                        </requestLog>
                    </configuration>
                </plugin>
     
     
                <!-- This changes the WAR file packaging so that what would normally go into WEB-INF/classes
                 is instead packaged as WEB-INF/lib/skillbrowser.jar.  This is necessary for Tapestry
                 to be able to search for page and component classes at startup. Only
                 certain application servers require this configuration, please see the documentation
                 at the Tapestry 5 project page (<a href="http://tapestry.apache.org/tapestry5/" target="_blank">http://tapestry.apache.org/tapestry5/</a>). -->
     
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                    <configuration>
                        <archiveClasses>true</archiveClasses>
                    </configuration>
                </plugin>
            </plugins>
        </build>
     
        <reporting>
     
            <!-- Adds a report detailing the components, mixins and base classes defined by this module. -->
            <plugins>
                <plugin>
                    <groupId>org.apache.tapestry</groupId>
                    <artifactId>tapestry-component-report</artifactId>
                    <version>${tapestry-release-version}</version>
                    <configuration>
                        <rootPackage>net.ilabs.skillbrowser</rootPackage>
                    </configuration>
                </plugin>
            </plugins>
        </reporting>
     
        <repositories>
            <!-- This can be commented out when the tapestry-release-version is a not a snapshot.
     The non-snapshot Tapestry artifacts are distributed through the central
     repository at ibiblio.     -->
     
            <repository>
                <id>tapestry-snapshots</id>
                <url>http://tapestry.formos.com/maven-snapshot-repository/</url>
            </repository>
     
            <repository>
                <id>codehaus.snapshots</id>
                <url>http://snapshots.repository.codehaus.org</url>
            </repository>
            <repository>
                <id>OpenQA_Release</id>
                <name>OpenQA Release Repository</name>
                <url>http://archiva.openqa.org/repository/releases/</url>
            </repository>
        </repositories>
     
        <pluginRepositories>
     
            <!-- As above, this can be commented out when access to the snapshot version
    of a Tapestry Maven plugin is not required.   -->
            <pluginRepository>
                <id>tapestry-snapshots</id>
                <url>http://tapestry.formos.com/maven-snapshot-repository/</url>
            </pluginRepository>
     
     
        </pluginRepositories>
     
        <properties>
            <tapestry-release-version>5.1.0.2</tapestry-release-version>
        </properties>
    </project>

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 38
    Points : 59
    Points
    59
    Par défaut
    Bonjour, et merci pour ce tutorial.

    Maven Integration for WTP est-il un plugin permettant d'ajouter le serveur Tomcat dans le projet ? Car sinon je n'arrive pas à associer le projet de test "skillbrowser" avec un serveur Tomcat installé, eclipse me dit qu'il ne trouve aucun projet à associer au serveur.


  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Je bloque ici pareil, help please

    Citation Envoyé par francoismalet Voir le message
    Bonjour,
    J’ai essayé de dérouler le tutoriel « Tutoriel Hibernate/JPA - Spring2.5 - Tapestry5 » (du 16/12/2008 , par Loïc Frering & Baptiste Meurant)

    J'arrive sans problème jusqu'à l'étape "2-3-2. Premier test avec la configuration par défaut"
    La page web s'affiche, j'obtiens bien "skillbrowser Start Page"
    (Au passage il ne faut pas oublier d'installer le plugin eclipse « Maven Integration for WTP » à partir de http://m2eclipse.sonatype.org/update)

    La ou ça se complique, c'est pour les parties 2-3-3. Configuration de Tapestry / 2-3-4. Page d'accueil
    J'effectue les actions suivantes :
    -> Modification du web.xml comme indiqué
    -> Création de la classe Index.java comme indiqué
    -> Création du fichier Index.tml (ici un petit doute : il est indiqué qu'il faut créer ce fichier dans src/main/resources or il me parait plus logique de le créer dans src\main\webapp)

    Je démarre Tomcat, et là, patatra, j'obtiens l'erreur suivante :

    Comme cette classe fait partie du package tapestry-spring, dans mon pom.xml, je décide de remplacer :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <dependency>
                <groupId>org.apache.tapestry</groupId>
                <artifactId>tapestry-core</artifactId>
                <version>${tapestry-release-version}</version>
            </dependency>
    par
     <dependency>
                <groupId>org.apache.tapestry</groupId>
                <artifactId>tapestry-spring</artifactId>
                <version>${tapestry-release-version}</version>
     </dependency>
    (tapestry-spring a une dépendance sur tapestry-core)

    Je redemarre tomcat, et ici j'obtiens l'erreur suivante :

    hum hum
    En cherchant un peu, je me rend compte que "tapestry-spring 5.1.0.2" (et non pas 5.0.15) a une dépendance sur "spring-web 2.5.6" (qui contient org/springframework/web/context/WebApplicationContext)
    Je tente le coup et je passe donc avec une tapestry-release-version 5.1.0.2

    Je redemarre tomcat, et cette fois j'ai l'erreur suivante :

    Mais dans le tutorial il n'est pas mentionné de fichier "applicationContext.xml" à configurer (est-ce implicite?)

    Voilà. Pouvez vous m'aider sur ce point? Suis-je sur la bonne piste?

    Merci pour votre aide!

    Mon web.xml :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE web-app
            PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
            "http://java.sun.com/dtd/web-app_2_3.dtd">
    <web-app>
        <display-name>SkillBrowser</display-name>
     
    	<context-param>
    	    <!-- The only significant configuration for Tapestry 5, this informs Tapestry of where to look for pages, components and mixins. -->
    	    <param-name>tapestry.app-package</param-name>
    	    <param-value>net.ilabs.skillbrowser.web</param-value>
    	</context-param>
     
    	<filter>
    	    <filter-name>app</filter-name>
    	    <filter-class>org.apache.tapestry5.spring.TapestrySpringFilter</filter-class>
    	</filter>
     
    	<filter-mapping>
    	    <filter-name>app</filter-name>
    	    <url-pattern>/*</url-pattern>
    	</filter-mapping>
     
    	<welcome-file-list>
    		<welcome-file>Index</welcome-file>
    	</welcome-file-list>
    </web-app>
    Mon pom.xml final


    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
     
    <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0">
        <modelVersion>4.0.0</modelVersion>
        <groupId>net.ilabs</groupId>
        <artifactId>skillbrowser</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <packaging>war</packaging>
        <name>skillbrowser Tapestry 5 Application</name>
        <dependencies>
            <!-- <dependency>
                <groupId>org.apache.tapestry</groupId>
                <artifactId>tapestry-core</artifactId>
                <version>${tapestry-release-version}</version>
            </dependency> -->
    		 <dependency>
                <groupId>org.apache.tapestry</groupId>
                <artifactId>tapestry-spring</artifactId>
                <version>${tapestry-release-version}</version>
            </dependency>
            <!-- A dependency on either JUnit or TestNG is required, or the surefire plugin (which runs the tests)
    will fail, preventing Maven from packaging the WAR. Tapestry includes a large number
    of testing facilities designed for use with TestNG (<a href="http://testng.org/" target="_blank">http://testng.org/</a>), so it's recommended. -->
            <dependency>
                <groupId>org.testng</groupId>
                <artifactId>testng</artifactId>
                <version>5.1</version>
                <classifier>jdk15</classifier>
                <scope>test</scope>
            </dependency>
     
        </dependencies>
        <build>
            <finalName>skillbrowser</finalName>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <configuration>
                        <source>1.5</source>
                        <target>1.5</target>
                        <optimize>true</optimize>
                    </configuration>
                </plugin>
     
                <!-- Run the application using "mvn jetty:run" -->
                <plugin>
                    <groupId>org.mortbay.jetty</groupId>
                    <artifactId>maven-jetty-plugin</artifactId>
                    <version>6.1.9</version>
                    <configuration>
                        <!-- Log to the console. -->
                        <requestLog implementation="org.mortbay.jetty.NCSARequestLog">
                            <!-- This doesn't do anything for Jetty, but is a workaround for a Maven bug
                                 that prevents the requestLog from being set. -->
                            <append>true</append>
                        </requestLog>
                    </configuration>
                </plugin>
     
     
                <!-- This changes the WAR file packaging so that what would normally go into WEB-INF/classes
                 is instead packaged as WEB-INF/lib/skillbrowser.jar.  This is necessary for Tapestry
                 to be able to search for page and component classes at startup. Only
                 certain application servers require this configuration, please see the documentation
                 at the Tapestry 5 project page (<a href="http://tapestry.apache.org/tapestry5/" target="_blank">http://tapestry.apache.org/tapestry5/</a>). -->
     
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                    <configuration>
                        <archiveClasses>true</archiveClasses>
                    </configuration>
                </plugin>
            </plugins>
        </build>
     
        <reporting>
     
            <!-- Adds a report detailing the components, mixins and base classes defined by this module. -->
            <plugins>
                <plugin>
                    <groupId>org.apache.tapestry</groupId>
                    <artifactId>tapestry-component-report</artifactId>
                    <version>${tapestry-release-version}</version>
                    <configuration>
                        <rootPackage>net.ilabs.skillbrowser</rootPackage>
                    </configuration>
                </plugin>
            </plugins>
        </reporting>
     
        <repositories>
            <!-- This can be commented out when the tapestry-release-version is a not a snapshot.
     The non-snapshot Tapestry artifacts are distributed through the central
     repository at ibiblio.     -->
     
            <repository>
                <id>tapestry-snapshots</id>
                <url>http://tapestry.formos.com/maven-snapshot-repository/</url>
            </repository>
     
            <repository>
                <id>codehaus.snapshots</id>
                <url>http://snapshots.repository.codehaus.org</url>
            </repository>
            <repository>
                <id>OpenQA_Release</id>
                <name>OpenQA Release Repository</name>
                <url>http://archiva.openqa.org/repository/releases/</url>
            </repository>
        </repositories>
     
        <pluginRepositories>
     
            <!-- As above, this can be commented out when access to the snapshot version
    of a Tapestry Maven plugin is not required.   -->
            <pluginRepository>
                <id>tapestry-snapshots</id>
                <url>http://tapestry.formos.com/maven-snapshot-repository/</url>
            </pluginRepository>
     
     
        </pluginRepositories>
     
        <properties>
            <tapestry-release-version>5.1.0.2</tapestry-release-version>
        </properties>
    </project>

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 277
    Points : 105
    Points
    105
    Par défaut
    Un de plus qui bloque de la même façon....

    Si quelqu'un a résolu ce problème et me dire comment est-ce qu'il à fait.

    Je vous remercie d'avance!

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 38
    Points : 59
    Points
    59
    Par défaut
    Même problème par ici.

  12. #12
    Candidat au Club
    Inscrit en
    Décembre 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Bonjour à tous,

    J'ai reussi a contourner le problème de la manière suivante :

    Ajouter dans le pom.xml les dépendances suivantes:
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
             <dependency>
                <groupId>org.apache.tapestry</groupId>
                <artifactId>tapestry-spring</artifactId>
                <version>${tapestry-release-version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-web</artifactId>
                <version>${spring-version}</version>
            </dependency>
    ainsi que la propriété
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <spring-version>2.5.6</spring-version>
    dans la balise properties.

    Voici mon nouveau fichier web.xml

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    <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>SkillBrowser</display-name>
     
    	<context-param>
    		<param-name>contextConfigLocation</param-name>
    		<param-value>classpath:applicationContext.xml</param-value>
    	</context-param>
     
    	<context-param>
    	    <!-- The only significant configuration for Tapestry 5, this informs Tapestry of where to look for pages, components and mixins. -->
    	    <param-name>tapestry.app-package</param-name>
    	    <param-value>net.ilabs.skillbrowser</param-value>
    	</context-param>
     
    	<filter>
    	    <filter-name>app</filter-name>
    	    <filter-class>org.apache.tapestry5.spring.TapestrySpringFilter</filter-class>
    	</filter>
     
    	<filter-mapping>
    	    <filter-name>app</filter-name>
    	    <url-pattern>/*</url-pattern>
    	</filter-mapping>
     
    	<welcome-file-list>
    		<welcome-file>Index</welcome-file>
    	</welcome-file-list>
     
    	<listener>
    		<listener-class>
    			org.springframework.web.context.ContextLoaderListener
    		</listener-class>
    	</listener>
     
    </web-app>

    Pour finir, creer un fichier applicationContext.xml dans le dossier src/main/resources avec ce contenu:

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
     
    </beans>

    NB :

    • Il y a une petite coquille dans le fichier web.xml (net.ilabs.skillbrowser à la place de net.ilabs.skillbrowser.web)
    • J'ai changé la verion de la web-app (2.3 -> 2.4 sinon j'avais des erreurs de tlds avec eclipse


    Je n'ai pas fait la totalité du tutoriel, mais ca pourra au moins vous debloquer et avancer.

  13. #13
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Bonjour,

    Pour ma part je suis bloqué au 4.3 au niveau de la configuration de la console hibernate.

    La fenêtre de configuration est légèrement différente de celle montrée dans le tuto, le module a du évolué depuis.

    Il y a entre autre un champ "Database connection" avec les choix "JPA project configured connection", "Hibernate configured connection" et "MySQL". Ce dernier ayant été ajouté par moi même. Si je choisis "JPA" j'ai une erreur me disant que mon projet n'est pas un JPA project, j'ai donc choisit l'option hibernate.

    Mon problème est relatif au champ "Naming strategy" : quand je clique sur Browse il ne trouve rien dans matching items. Et lorsque je lance le module hibernate de génération de code (après l'avoir configuré comme expliqué dans le tuto) j'ai l'erreur suivante :

    org.hibernate.console.HibernateConsoleRuntimeException: Could not create JPA based Configuration
    Could not create JPA based Configuration
    <No message>
    java.lang.reflect.InvocationTargetException
    java.lang.reflect.InvocationTargetException: <no message>
    java.lang.reflect.InvocationTargetException
    javax.persistence.PersistenceException: [PersistenceUnit: jpaTutos] Unable to instanciate naming strategy class: org.hibernate.cfg.NamingStrategy
    [PersistenceUnit: jpaTutos] Unable to instanciate naming strategy class: org.hibernate.cfg.NamingStrategy
    java.lang.InstantiationException: org.hibernate.cfg.NamingStrategy
    org.hibernate.cfg.NamingStrategy


    Il semble que le problème vienne ce cette naming strategy mais je ne vois pas comment le résoudre ...

    Quelqu'un peut il m'aider ??

    Merci

  14. #14
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Bon quelques infos au cas où d'autres bloqueraient sur le même problème.

    J'ai retiré la namingStrategy et malgré ça j'avais un problème de connexion à la base de donnée.

    Sous vista un problème fait que localhost n'est pas reconnu, il faut le remplacer par 127.0.0.1 (database.properties, et autre endroit peut être).

    Plus d'infos sur le post ci dessous :

    http://www.coderanch.com/t/40/455142...lipse-Ganymede

    La connexion à la base fonctionne après ce changement.

  15. #15
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 34
    Points : 17
    Points
    17
    Par défaut Ajout du projet sur Tomcat
    Bonjour et merci pour ce tuto.

    Je bloque au moment où il faut ajouter le projet au serveur tomcat.
    Je n'ai aucun projet à ajouter...
    Je remarque que mon projet n'a pas l'icône "web" sur son répertoire racine.

    Merci pour l'aide.

  16. #16
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Bonjour Benoit,

    J'ai eu le même problème, et je crois l'avoir résolu en cochant la case "Dynamic Web Module" dans Projects Facets des propriétés du projet SkillBrowser.

    Voila

  17. #17
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 34
    Points : 17
    Points
    17
    Par défaut
    Merci Ahoulba, ça permet effectivement à tomcat de "voir" le projet.

  18. #18
    Débutant
    Inscrit en
    Octobre 2007
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 285
    Points : 97
    Points
    97
    Par défaut
    je suis arrivé a creer le projet .Mais c est un simple projet Maven , ya pas l icone Web sur la racine du projet .du coup je n'arrive pas à le déployer sur un serveur .si quelqu'un peut m'aider je serais trés trés reconnaissante!
    Merci

  19. #19
    Débutant
    Inscrit en
    Octobre 2007
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 285
    Points : 97
    Points
    97
    Par défaut
    je suis sur eclipse 3.5 (Galileo ) et je vois pas dans les propriétés du Projet ,un Tag Project Facets .si quelqu'un m'aide

  20. #20
    Membre à l'essai
    Inscrit en
    Décembre 2008
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 25
    Points : 13
    Points
    13
    Par défaut
    on pourais avoir une maj du tuto suivant l'architype 5.1.5 ?

Discussions similaires

  1. Tutoriel Hibernate/JPA - Spring2.5 - Tapestry5
    Par Deepin dans le forum JPA
    Réponses: 4
    Dernier message: 13/03/2015, 16h51
  2. Réponses: 0
    Dernier message: 02/03/2009, 13h56
  3. Réponses: 7
    Dernier message: 07/01/2008, 15h56
  4. Probleme Hibernate + JPA -> lazy loading non respecté
    Par MikoMax dans le forum Hibernate
    Réponses: 1
    Dernier message: 28/08/2007, 15h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo