2010-10-28 7 views
1

J'ai créé un service Web RESTful en utilisant Spring. J'ai des contrôleurs qui ont une portée de session.session scoped bean non créé par DispatcherServlet

Lorsque j'essaie d'effectuer une requête GET, en réalité fonctionne très bien mais j'obtiens une exception ignorée alors que DispatcherServlet essaie de déterminer la valeur Last-Modified.

2010-10-28 11: 32: 50487 [http-8080-2] DEBUG org.springframework.web.servlet.DispatcherServlet - DispatcherServlet avec le nom 'Spring MVC Dispatcher Servlet' détermination de la valeur de dernière mise à jour pour [/apm/users/1009]

2010-10-28 11: 32: 50,491 [http-8080-2] DEBUG org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping - Motifs correspondants pour la requête [/ users/1009] sont [/ users/{id}]

2010-10-28 11: 32: 50491 [http-8080-2] DEBUG org.springframework.web.servlet.DispatcherServlet - Exception lancée dans getLastModified org .springframe work.beans.factory.BeanCreationException: Erreur lors de la création du bean avec le nom 'scopedTarget.userController': L'étendue 'session' n'est pas active pour le thread en cours; envisager de définir un proxy de portée pour ce bean si vous avez l'intention de vous y référer à partir d'un singleton; l'exception imbriquée est java.lang.IllegalStateException: aucune requête liée au thread n'a été trouvée: faites-vous référence aux attributs de requête en dehors d'une requête Web réelle ou au traitement d'une requête en dehors du thread de réception initial? Si vous travaillez réellement dans une requête Web et recevez toujours ce message, votre code est probablement exécuté en dehors de DispatcherServlet/DispatcherPortlet: Dans ce cas, utilisez RequestContextListener ou RequestContextFilter pour exposer la demande en cours. à org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean (AbstractBeanFactory.java:339)

requêtes POST fonctionne aussi, mais je ne suis pas une exception quand je les lance.

Une idée pourquoi ça arrive?! Que puis-je faire pour éviter cela?!

Merci!

Répondre

2

C'était un bug de Spring (SPR-7456), corrigé au printemps 3.0.4.

En tant que solution de contournement pour les versions précédentes, vous pouvez probablement ajouter

<listener>org.springframework.web.context.request.RequestContextListener</listener> 

à votre web.xml.

+0

Bonne prise ..... – skaffman

+0

j'ai mis à jour à 3.0.4. Merci ! – refaelos

+1

@Rafa: 3.0.5 est sorti hier. Si vous souhaitez effectuer une mise à niveau, mettez-le à niveau. – skaffman

Questions connexes