Как мне начать Hunchentoot?
Как запустить Hunchentoot в проекте? Я посмотрел руководство Эди Вейц, и все прошло гладко, пока после установки. Перечисленные учебники были либо сломаны, либо пропущены из-за фактического использования сервера.
У меня есть файл asdf, установлены зависимости с помощью quicklisp и настроена таблица отправки. Как мне заставить Hunchentoot работать с этим материалом?
3 ответа
Чтобы обновить, я улучшил ответ Сванте:
(defun start-server ()
(stop-server)
(start (setf *acceptor*
(make-instance 'easy-acceptor
:port 4242))))
(defun stop-server ()
(when *acceptor*
(when started-p *acceptor*
(stop *acceptor*))))
До запуска сервера акцептор равен нулю. После запуска сервера (даже если он впоследствии был остановлен) он больше не равен нулю. Тест start-p проверяет, запущен ли инициализированный easy-acceptor. Если вы попытаетесь остановить уже остановленный акцептор, вы получите сообщение об ошибке.
Вы вызываете start
на примере acceptor
,
Если вы используете основной easy-handler
механизм, который идет с hunchentoot, это было бы easy-acceptor
,
Вы захотите иметь механизм для запуска и остановки вашего сервера. Это может выглядеть так:
(defvar *acceptor* nil)
(defun start-server ()
(stop-server)
(start (setf *acceptor*
(make-instance 'easy-acceptor
:port 4242))))
(defun stop-server ()
(when *acceptor*
(stop *acceptor*)))
(start (defparameter hunchentoot-listener
(make-instance 'easy-acceptor
:port 4242
:document-root #p"/path/to/your/html/")))
вы получите работающий веб-сервер через порт 4242 ( http://localhost:4242/)