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 Web Java Discussion :

listes imbriquées - json REST - ERREUR 500 [MVC]


Sujet :

Spring Web Java

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2003
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 20
    Points : 15
    Points
    15
    Par défaut listes imbriquées - json REST - ERREUR 500
    Bonjour,

    je souhaite faire des listes imbriquées, après mes recherche je suis parti sur des technos json, ajax, WS Rest...

    J'ai fait plusieurs essais pour envoyer avec le controller des données en json mais j'ai tjs eu un 404.

    J'ai mis ceci dans le pom.xml :
    <dependency>
    <groupId>org.codehaus.jackson</groupId>
    <artifactId>jackson-mapper-asl</artifactId>
    <version>1.9.13</version>
    </dependency>

    Voilà, j'ai donc pris l'exemple tout simple de Spring pour tester: Building a RESTful Web Service
    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
    package controller;
     
    import java.util.concurrent.atomic.AtomicLong;
     
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    import org.springframework.web.bind.annotation.RestController;
     
    import hello.Greeting;
     
    @RestController
    public class GreetingController {
     
        private static final String template = "Hello, %s!";
        private final AtomicLong    counter  = new AtomicLong();
     
        @RequestMapping( "/greeting" )
        public Greeting greeting( @RequestParam( value = "name", defaultValue = "World" ) String name) {
            return new Greeting( counter.incrementAndGet(),
                    String.format( template, name ) );
        }
    }
    J'ai maintenant Etat HTTP 500 - Request processing failed; nested exception is java.lang.IllegalArgumentException: No converter found for return value of type: class hello.Greeting
    Pourquoi ?

    A votre avis suis je sur la bonne piste pour ces lites imbriquées et pouvez vous m'aider avec ce problème de RESTful Web Service ?

    Faut il ajouter quelque chose dans le AppConfig ?

    Merci

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    940
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 940
    Points : 1 817
    Points
    1 817
    Par défaut
    Le message d'erreur implique que Spring MVC n'a pas trouvé de convertisseur Http pour la classe Greeting. Normalement, quand Jackson est inclus dans le path, Spring instancie automatiquement un convertisseur objet <-> Json. Votre pom est peut-être erroné.

    Voici un extrait de mon propre pom:
    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
    <!-- JSON via Jackson -->
    <dependency>
    	<groupId>com.fasterxml.jackson.core</groupId>
    	<artifactId>jackson-databind</artifactId>
    	<version>2.5.3</version>
    </dependency>
    <dependency>
    	<groupId>com.fasterxml.jackson.core</groupId>
    	<artifactId>jackson-annotations</artifactId>
    	<version>2.5.0</version>
    </dependency>
    <dependency>
    	<groupId>com.fasterxml.jackson.core</groupId>
    	<artifactId>jackson-core</artifactId>
    	<version>2.5.3</version>
    </dependency>
    J'utilise également des composants optionnels :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <!-- Permet à Jackson de générer du JSOG. -->
    <dependency>
    	<groupId>com.voodoodyne.jackson.jsog</groupId>
    	<artifactId>jackson-jsog</artifactId>
    	<version>1.1</version>
    </dependency>
    <!-- Compatibilité Jackson - Hibernate (lazy loading) -->
    <dependency>
    	<groupId>com.fasterxml.jackson.datatype</groupId>
    	<artifactId>jackson-datatype-hibernate4</artifactId>
    	<version>2.4.0</version>
    </dependency>

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2003
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 20
    Points : 15
    Points
    15
    Par défaut
    Merci pour ta réponse !

    j'ai une autre classe qui me pose problème j'affiche simplement la variable dans un jsp:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        @JoinColumn( name = "id_personne", referencedColumnName = "id" )
        @ManyToOne( optional = false, fetch = FetchType.LAZY)
        private Personne idPersonne;
    Dans le jsp:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ${maclasse.idPersonne.nom}
    org.apache.jasper.JasperException: javax.el.ELException: Error reading 'nom' on type entity.Personne.....
    org.hibernate.LazyInitializationException: could not initialize proxy - no Session....

    Encore le Pb LAZY, si j'enlève ou rajoute ce que tu m'a mis dans le pom.xml cela fait la m^me me chose.
    Le seul moyen d'éviter cette ERREUR est de mettre en FetchType.LAZY mais ça me fait d'autre PB (lenteurs, out of memory) dans d'autres utilisations. Je peux rajouter @JsonIgnore mais ensuite impossible de utiliser cette variable.

    Avez vous d'autres pistes !

    Merci !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 26/09/2014, 11h33
  2. Awstats - liste compléte erreurs 500
    Par KOUTO dans le forum Statistiques
    Réponses: 0
    Dernier message: 14/08/2008, 15h58
  3. [tomcat] Erreur 500 à l'appel de la servlet
    Par Kyti dans le forum Tomcat et TomEE
    Réponses: 26
    Dernier message: 06/04/2005, 09h37
  4. [web] [CGI][Easyphp] erreur 500
    Par nico72 dans le forum Web
    Réponses: 11
    Dernier message: 29/07/2004, 20h08
  5. Réponses: 6
    Dernier message: 28/10/2002, 11h34

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