2010-07-27 4 views

Répondre

3

Non encore implémenté dans Spring Framework 3.x. Voir https://jira.springframework.org/browse/SPR-5587 et https://jira.springsource.org/browse/SPR-8517

Si vous voulez un support de comète (ajax à interrogation longue) Vous pouvez essayer CometD (http://cometd.org/documentation/cometd-java/server/services/integration-spring). Mais je vous préviens que je l'ai laissé tomber, c'est juste pour gonfler! (Une telle chose simple comme interrogation longue exige des jours de configuration ??!)

Je voudrais simplement m'impliquer quelques contrôleurs RESTful dans Spring3 et programmer moi-même la longue interrogation. Faites votre demande de style Ajax au serveur, votre contrôleur la garde ouverte jusqu'à ce que le serveur ait de nouvelles données à envoyer au navigateur. Le navigateur lance une nouvelle requête d'interrogation longue afin d'obtenir les événements suivants. Pour éviter les délais d'attente de connexion, il suffit de renvoyer des valeurs factices qui obligent le client à répéter la demande.

Le plus simple est la plupart du temps les meilleures solutions.

+0

Devrait être mis en œuvre pour le printemps 3.1.0 qui est sorti, mais selon https: //jira.springsource.org/browse/SEC-1685 il a été déplacé à 3.2.0 ... cependant, le support de Servlet 3.0 est large terme et cela ne signifie pas nécessairement que le traitement asynchrone sera implémenté aussi –

4

Pas si vite, il n'est pas si simple d'implémenter une longue interrogation.

Chaque interrogation longue utilisera un thread, si vous avez 1000 utilisateurs simultanés, vous aurez besoin de 1000 threads pour répondre à la requête d'interrogation longue ( La méthode que vous avez mentionnée fonctionne bien. qui fait la plupart du temps la mise à jour de l'état côté serveur sur le navigateur client)

Jetty 6 a un motif continu qui libère intelligemment le thread de longue requête d'interrogation à utiliser par la logique d'application réelle.

+0

Et Jetty 7, maintenant le la version actuelle à la mi-2011 soutient pleinement cela. Je suis également à la recherche d'un statut actuel au soutien du printemps. –

2

La question est assez ancienne, mais toujours sans réponse. L'auteur voulait un support asynchrone dans Spring MVC, et la solution n'est toujours pas donnée.

Comme la réponse précédente l'indiquait, la demande de support asynchrone a été soumise à un bugtracker communautaire de printemps et devait être implémentée au printemps 3.1.0. Cela a été publié récemment, mais selon les notes de version "Support de Servlet 3.0" est prévu pour être fait dans la version 3.2.0: https://jira.springsource.org/browse/SEC-1685

J'ai besoin de COMET très efficace pour mon application. Ma mise en œuvre actuelle est basée sur cet exemple: http://code.google.com/p/jquery-stream/wiki/EchoExample, mais je suis intéressé à le déplacer vers le contrôleur Spring MVC. Pour le moment, je viens d'améliorer l'exemple et d'y injecter manuellement des haricots de printemps pour permettre la communication avec le reste de l'application. J'ai eu quelques problèmes avec, décrit dans ma question: Tomcat 7 Async Processing failing - only one request processed simultanously. Pour l'instant, cela fonctionne bien.

J'ai trouvé un exemple qui utilise les solutions jboss: http://docs.jboss.org/resteasy/docs/1.0.0.GA/userguide/html/Asynchronous_HTTP_Request_Processing.html, mais utiliser jboss pour moi n'est pas une solution. JBoss est trop grand, trop lent et trop difficile à développer.

+0

Voir (et voter pour :)) https://jira.springsource.org/browse/SPR-8517 –

0

Le support async de Servlet 3.0 est actuellement à l'étude. Si vous avez des scénarios spécifiques que vous aimeriez voir reflétés, veuillez commenter sous SPR-8517 ou regarder le ticket et suivre la discussion.

Questions connexes