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

Spring Java Discussion :

petclinic échoue sur Glassfish : quel tutorial / démo de Spring fonctionne sur tous les serveurs ?


Sujet :

Spring Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    608
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 608
    Par défaut petclinic échoue sur Glassfish : quel tutorial / démo de Spring fonctionne sur tous les serveurs ?
    Bonjour,

    J'ai téléchargé la dernière version de STS et j'ai compilé l'application d'exemple petclinic proposée à titre de référence dans le Tutoriel associé à STS.
    Je l'ai ensuite déployée sur Glassfish 4.

    Elle échoue quasi-immédiatement sur un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    [2014-05-04T04:38:54.207+0200] [glassfish 4.0] [INFO] [] [] [tid: _ThreadID=19 _ThreadName=Thread-3] [timeMillis: 1399171134207] [levelValue: 800] [[
      WARN  warn - Handler execution resulted in exception
    java.lang.IllegalArgumentException: setAttribute: Non-serializable attribute with name owner
    	at org.apache.catalina.session.ManagerBase.checkSessionAttribute(ManagerBase.java:835) ~[web-core.jar:na]
    	at org.apache.catalina.session.StandardSession.setAttribute(StandardSession.java:1840) ~[web-core.jar:na]
    	at org.apache.catalina.session.StandardSessionFacade.setAttribute(StandardSessionFacade.java:178) ~[web-core.jar:na]
    	at org.springframework.web.context.request.ServletRequestAttributes.setAttribute(ServletRequestAttributes.java:131) ~[spring-web-4.0.3.RELEASE.jar:4.0.3.RELEASE]
    	at org.springframework.web.bind.support.DefaultSessionAttributeStore.storeAttribute(DefaultSessionAttributeStore.java:55) ~[spring-web-4.0.3.RELEASE.jar:4.0.3.RELEASE]
    	at org.springframework.web.method.annotation.SessionAttributesHandler.storeAttributes(SessionAttributesHandler.java:124) ~[spring-web-4.0.3.RELEASE.jar:4.0.3.RELEASE]
    	at org.springframework.web.method.annotation.ModelFactory.updateModel(ModelFactory.java:202) ~[spring-web-4.0.3.RELEASE.jar:4.0.3.RELEASE]
    	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.getModelAndView(RequestMappingHandlerAdapter.java:852) ~[spring-webmvc-4.0.3.RELEASE.jar:4.0.3.RELEASE]
    	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:755) ~[spring-webmvc-4.0.3.RELEASE.jar:4.0.3.RELEASE]
    	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:689) ~[spring-webmvc-4.0.3.RELEASE.jar:4.0.3.RELEASE]
    À lire son POM, elle n'a été testée que pour fonctionner sur Tomcat 7.
    Et cela m'ennuie beaucoup.

    Parce que Tomcat 7, j'en ai fait. Je sais que c'était une évolution côté paramétrage vis-à-vis de Tomcat 6.
    Mais aujourd'hui, c'est Tomcat 8 le serveur web up to date, et le petclinic n'en tient pas compte.
    Même ainsi, j'ai aussi fait du JBoss AS 7 et du Glassfish 3 puis 4 aux paramétrages encore différents.

    J'ai cru que Spring, container léger, s'affranchissait de tout cela.
    Et j'ai l'impression qu'en fait, non, pas du tout. Il semble est tout aussi lié à un paramétrage spécifique que ne le sont les autres serveurs d'applications.

    D'où mes deux questions :

    1) Pour finalement réussir à exécuter Petclinic
    Existe t-il des consignes quelque-part qui disent pour petclinic :
    si vous déployez sur Glassfish, faites ces dix modifs là,
    si vous déployez sur JBoss, ces quinze là,
    sur Tomcat 8, celles-ci ? (sur Tomcat 8, il s'exécute).

    2) Quelle est l'application de démo officielle qui s'exécute sur tous les serveurs ?
    Celle qui quand on la compile en war, s'exécute immédiatement et sans problème sur :
    - Tomcat 8
    - Tomcat 7
    - Glassfish 4
    - JBoss AS 7

    Merci !

  2. #2
    Traductrice
    Avatar de Mishulyna
    Femme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2008
    Messages
    1 505
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 505
    Par défaut
    Bonjour,

    Par curiosité j'ai téléchargé l'archive, crée sous NetBeans un nouveau projet Maven (Project with existing POM) à partir du dossier de fichiers de l'application PetClinic et celui-ci s'exécute sur GlassFish 4.0. Si vous pensez que le contenu d'un des fichiers de configuration (ou le fichier .war) de ce projet pourrait vous être utile, faites-moi signe.

  3. #3
    Membre très actif

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    608
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 608
    Par défaut
    Merci !
    Mais je ne sais pas lequel ni pourquoi.
    Parce que j'ai téléchargé le projet, je l'ai compilé par le POM, déployé puis il s'est planté à l'exécution.
    Le message n'est pas parlant : il y a un problème de session, c'est ce que je comprends. Mais je dois avoir exactement les mêmes fichiers de configuration que les vôtres puisque je les ai pris du même endroit, et que je n'y ai pas touché.

    Mystère...

  4. #4
    Traductrice
    Avatar de Mishulyna
    Femme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2008
    Messages
    1 505
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 505
    Par défaut
    Citation Envoyé par grunt2000 Voir le message
    Mais je dois avoir exactement les mêmes fichiers de configuration que les vôtres puisque je les ai pris du même endroit, et que je n'y ai pas touché.
    En comparant les deux .war (celui de l'archive téléchargée et celui du dossier "target" de mon projet): ce n'est pas le cas. Dans WEB-INF, en plus de faces-config.xml j'ai un fichier glassfish-web.xml dont voici le contenu:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE glassfish-web-app PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Servlet 3.0//EN" "http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd">
    <glassfish-web-app error-url="">
      <context-root>/javaee7-petclinic</context-root>
      <class-loader delegate="true"/>
      <jsp-config>
        <property name="keepgenerated" value="true">
          <description>Keep a copy of the generated servlet class' java code.</description>
        </property>
      </jsp-config>
    </glassfish-web-app>
    Et dans le pom.xml de mon projet il y a une petite différence
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <dependency>
                <groupId>javax</groupId>
                <artifactId>javaee-web-api</artifactId>
                <version>7.0</version>
                <scope>provided</scope>
                <type>jar</type>
            </dependency>
    Tout ce que j'ai fait c'était des Clean and Build et Build with Dependencies, puis de sélectionner le serveur GlassFish pour l'exécution.

  5. #5
    Membre très actif

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    608
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 608
    Par défaut
    Merci ! Je vais pouvoir l'appliquer pour corriger l'exécution.

    Mais dans quels documents du projet petclinic se trouvent ces directives pour faire fonctionner l'application web sur Glassfish ?
    Parce que je suis visiblement passé à côté de ce fichier là !

  6. #6
    Traductrice
    Avatar de Mishulyna
    Femme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2008
    Messages
    1 505
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 505
    Par défaut
    Bonjour,

    Je n'utilise pas Maven d'habitude. Sous NetBeans, lors du Clean Build d'un projet Java Web, on me crée un dossier "dist" avec le .war dedans. Dans ce cas-ci, un dossier "target" a été créé avec le contenu que voici

    Nom : target.JPG
Affichages : 248
Taille : 32,6 Ko.

    Le fichier glassfish-web.xml se trouve à cet emplacement

    Nom : WEB-INF.JPG
Affichages : 219
Taille : 17,9 Ko.

    Je n'ai pas cherché des "directives" dans l'archive du projet, alors j'ignore si elles existent. J'ai désarchivé, regardé un peu à quoi ça ressemble, puis, comme j'ai vu un pom.xml dedans j'ai pensé à créer un projet Maven pour utiliser les sources. Je suppose que vous pouvez faire pareil avec votre IDE pour obtenir un .war exécutable sur GlassFish. Ou je peux vous filer le mien d'une façon ou d'une autre mais pas sûr que des fichiers de configuration NetBeans ne trainnent dedans...

Discussions similaires

  1. Quel moteur 3D choisir (et fonctionnant) sur Python 3.3?
    Par gblassel dans le forum Programmation multimédia/Jeux
    Réponses: 2
    Dernier message: 12/10/2013, 17h41
  2. Réponses: 2
    Dernier message: 23/01/2013, 12h16
  3. Réponses: 2
    Dernier message: 04/08/2009, 09h55
  4. Quel langage pour envoyer un fichier sur une adresse
    Par dai.kaioh dans le forum Développement
    Réponses: 2
    Dernier message: 02/04/2004, 16h38
  5. quel langage pour créer des "applications" sur 1 s
    Par jaribu dans le forum Langages de programmation
    Réponses: 7
    Dernier message: 30/07/2003, 14h06

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