我使用这些 WAR 制作和部署步骤构建了一个 WAR 文件并部署到 Jetty 9 ,这是对 Pedestal 建议的改编。这个过程过去对我有用,但目前,Jetty 不会启动应用程序。
我也找不到任何有用的日志。这是我的主要问题。我看过这些地方:
/var/log/jetty/current
只告诉我这个:
2014-03-29_16:23:24.058:INFO:oejsh.ContextHandler:main: Started o.e.j.w.WebAppContext@181d4997{/,file:/tmp/jetty-0.0.0.0-8080-myapp.war-_-myapp.domain.com-5203978721479585979.dir/webapp/,AVAILABLE,myapp.domain.com}{/opt/myapp/myapp.war}
2014-03-29_16:23:24.14610 2014-03-29 16:23:24.126:INFO:oejs.ServerConnector:main: Started ServerConnector@5cb1d518{HTTP/1.1}{0.0.0.0:8080}
/opt/jetty/logs
- 根本不包含任何文件/opt/myapp
- 包含myapp.war
但没有日志
我还尝试-DDEBUG=true -Dorg.eclipse.jetty.LEVEL=DEBUG
在启动时添加到我的 Jetty JVM 选项,但额外的登录/var/log/jetty/current
并没有告诉我 WAR 文件启动出了什么问题。
尽管日志记录在开发中有效(例如,使用lein run-dev
),但如果我在日志记录配置中犯了某种错误,我不会感到惊讶。我正在使用Pedestal 服务模板提供的标准logback.xml 。
关于底层应用程序错误,我也有一些猜测。这很可能是由于最近应用程序依赖项的变化(我添加了 Datomic)或在启动时连接到 Datomic。
这是我的 project.clj:
(defproject myapp-service "0.1.0-SNAPSHOT"
:description "A web app"
:url "http://myapp.domain.com"
:dependencies
[[org.clojure/clojure "1.6.0"]
[org.clojure/tools.reader "0.8.3"]
[com.datomic/datomic-pro "0.9.4699"
:exclusions [org.slf4j/slf4j-api org.slf4j/slf4j-nop commons-codec]]
[io.pedestal/pedestal.service "0.2.2"
:exclusions [com.fasterxml.jackson.core/jackson-core]]
[io.pedestal/pedestal.service-tools "0.2.2"
:exclusions [com.fasterxml.jackson.core/jackson-core]]
[enlive/enlive "1.1.5"]
[validata "0.1.5"]]
:repositories
{"my.datomic.com"
{:url "https://my.datomic.com/repo"
:username "email@domain.com"
:password "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"}}
:profiles
{:dev
{:source-paths ["dev"]
:dependencies
[[io.pedestal/pedestal.jetty "0.2.2"]]}}
:min-lein-version "2.0.0"
:resource-paths ["config", "resources"]
:aliases
{"run-dev" ["trampoline" "run" "-m" "myapp-service.server/run-dev"]}
:repl-options
{:init-ns user
:init
(try
(use 'io.pedestal.service-tools.dev)
(require 'myapp-service.service)
; HACK: Allow referencing non clojure.core symbols in :init
(eval '(init myapp-service.service/service
#'myapp-service.service/routes))
(catch Throwable t
(println "ERROR: There was a problem loading"
"io.pedestal.service-tools.dev")
(clojure.stacktrace/print-stack-trace t)
(println)))
:welcome (println
"Welcome to pedestal-service!"
"Run (tools-help) to see a list of useful functions.")}
:main ^{:skip-aot true} myapp-service.server)
所以,重申我的主要问题,我如何让日志记录工作?其他一切都将随之而来。