今天写clojure,当代码写完,需要挂载到hander的时候 ,启动出现异常:
刚开始在hander这么写:
(ns custombackend.handler
(:require
[custombackend.middleware :as middleware]
[custombackend.routes.base :as base]
[reitit.swagger-ui :as swagger-ui]
[reitit.ring :as ring]
[ring.middleware.content-type :refer [wrap-content-type]]
[ring.middleware.webjars :refer [wrap-webjars]]
[custombackend.env :refer [defaults]]
[mount.core :as mount]
[custombackend.modules.about.about-routes :refer [about-routes]]]))
(mount/defstate init-app
:start ((or (:init defaults) (fn [])))
:stop ((or (:stop defaults) (fn []))))
;;api接口
(defn api-routes []
(conj (base/api-routes)))
;;api-public接口
(defn api-public-routes []
(conj (base/api-public-routes)
(index-routes)))
;;管理接口
(defn admin-routes []
(conj (base/admin-routes)
+ (product-admin-routes))
)
启动出现异常:
Caused by: java.lang.RuntimeException: Unable to resolve symbol: product-manager-routes in
意思就是找不到product-admin-routes
原因:
没有在:require中没有把项目中的product-admin-routes引入进来
,
解决办法
(ns custombackend.handler
(:require
[custombackend.middleware :as middleware]
[custombackend.routes.base :as base]
[reitit.swagger-ui :as swagger-ui]
[reitit.ring :as ring]
[ring.middleware.content-type :refer [wrap-content-type]]
[ring.middleware.webjars :refer [wrap-webjars]]
[custombackend.env :refer [defaults]]
[mount.core :as mount]
[custombackend.modules.about.about-routes :refer [about-routes]]
+ [custombackend.modules.product.product-admin-routes :refer [product-admin-routes]]]))
(mount/defstate init-app
:start ((or (:init defaults) (fn [])))
:stop ((or (:stop defaults) (fn []))))
;;api接口
(defn api-routes []
(conj (base/api-routes)))
;;api-public接口
(defn api-public-routes []
(conj (base/api-public-routes)
(index-routes)))
;;管理接口
(defn admin-routes []
(conj (base/admin-routes)
+ (product-admin-routes))
)
重新启动问题解决了!!!