J'écris une application web en utilisant ring et clojure. J'utilise l'adaptateur jetty pour le serveur de développement et emacs/SLIME pour IDE. Alors que wrap-reload aide, run-jetty bloque ma session slime et j'aimerais pouvoir la démarrer/l'arrêter à volonté sans avoir à l'exécuter dans une session de terminal séparée. Idéalement, je voudrais définir un agent serveur et des fonctions start-server et stop-server qui démarreraient/arrêteraient le serveur dans l'agent. Est-ce possible?Comment arrêter le serveur jetty dans clojure?
Répondre
J'ai habituellement une ligne dans mon application Ring qui ressemble à ce qui suit:
(defonce server (run-jetty #'my-app {:port 8080 :join? false}))
Cela évite le verrouillage REPL. Cela me permet également de recompiler ce fichier sans craindre que mon serveur ne soit redéfini. Il vous permet également d'interagir au REPL comme ceci:
user=> (.stop server)
et
user=> (.start server)
La documentation de Jetty contient des informations sur graceful shutdown de Jetty. Ce n'est probablement pas assez d'informations mais cela peut vous aider à démarrer.
Je n'ai pas encore commencé à jouer avec compojure, mais dans l'ensemble je préfère travailler avec Tomcat. C'est plus complet; entre autres choses, il y a une API bien documentée pour le démarrer et l'éteindre, il écoute la commande shutdown sur un port dédié; Il y a des tâches à faire pour cela, et elles peuvent bien sûr être appelées à partir d'une application Java. Je ne sais pas quel genre de magie fait Compojure en connectant le REPL à une instance en cours d'exécution du conteneur Web, et si/comment le rechargement automatique des classes se produit ... j'espère que quelqu'un d'autre pourra fournir plus d'informations.
Eh bien, dans ce cas, je ne suis même pas en utilisant compojure, je suis juste en utilisant ring.jetty.adapter pour commencer la jetée serveur. La raison d'aller avec Jetty est que je n'ai pas à recompiler tout le temps. –
Wow, Jetty vous permet de faire cela? Cool. Devra apprendre à ce sujet bientôt. Merci! –
- 1. Comment arrêter le serveur web Jetty dans Google App Engine
- 2. Comment intégrer le serveur i-jetty dans l'application android?
- 3. Serveur Jetty pour Windows
- 4. Comment déployer un fichier JSP sur le serveur web Jetty?
- 5. comment démarrer et arrêter le serveur dans netbeans 6.8?
- 6. Programmation du serveur avec Clojure
- 7. écrire un serveur de multiplexage dans clojure?
- 8. Arrêter le démon avec le serveur dans Ruby on Rails
- 9. Comment arrêter une opération en cours dans le SLIME REPL?
- 10. erreur MySQL sur le serveur arrêter
- 11. Comment arrêter correctement un serveur IOCP?
- 12. Comment installer l'adaptateur de serveur WTP Jetty pour Eclipse 3.5?
- 13. Arrêter le serveur de développement lorsque j'arrête le débogage
- 14. Serveur Jetty 7 en cours d'exécution dans Eclipse?
- 15. Comment intégrer GEVA dans Clojure
- 16. Comment arrêter le téléchargement vidéo dans MPMoviePlayerController
- 17. Comment arrêter le scintillement dans Scriptaculous?
- 18. Comment arrêter le son dans MATLAB?
- 19. Comment arrêter le spam dans PHPBB3?
- 20. jetty - recharger le fichier tag en pot
- 21. Comment utiliser Zip dans Clojure?
- 22. Détection de l'initialisation complète d'un serveur Jetty intégré
- 23. arrêter le son dans l'iPhone
- 24. Injection de dépendances: Jetty 7
- 25. Le code le plus court pour démarrer le serveur Jetty intégré
- 26. Comment "paramétrer" le test de Clojure Contrib?
- 27. Metro + Jetty + OSGi = douleur
- 28. Comment arrêter le postback indésirable
- 29. Jetty: comment désactiver la journalisation?
- 30. arrêter un serveur cherrypy sur http
Exactement ce que je cherchais! –
Je reçois cette erreur: 'Aucun champ correspondant trouvé: début de la classe clojure.lang.PersistentList [Classe java.lang.IllegalArgumentException]'. Des idées? – Tyler
Peu importe, le problème était que la defonce n'était pas re-defing - imaginez que :) – Tyler