2013-11-02 36 views
2

如何在项目上启动Hunchentoot?我查看了Edi Weitz的指南,一切安然无恙。列出的教程或者被破坏或者被实际的服务器使用率所剔除。如何启动Hunchentoot?

我有我的asdf文件,使用quicklisp安装了依赖项,并设置了一个调度表。我如何让Hunchentoot使用这些东西?

+0

http://weitz.de/hunchentoot/#start是这样吗? – 2013-11-02 15:20:57

回答

0

您在acceptor的实例上调用start

如果您使用hunchentoot自带的基本easy-handler机制,那将是一个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*))) 
0
(start (defparameter hunchentoot-listener 
     (make-instance 'easy-acceptor 
         :port 4242 
         :document-root #p"/path/to/your/html/"))) 

将让你在端口上运行的Web服务器4242(http://localhost:4242/

+0

不要使用'defparameter'。你希望你的顶层表单可以重新加载。 – Svante

+0

我仍然处于学习曲线的上坡 - 你能举一个更可接受的方式吗? – JEPrice

+0

我给我的答案增加了一个例子。 – Svante

0

要更新,我在斯万的回答改进:

(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*)))) 

启动服务器之前,acceptor为零。在服务器启动后(即使它随后被停止),它不再是零。启动-p测试检查是否启动了初始化的易接受器。如果您尝试停止已停止的接受方,则会收到错误消息。