最近寫了一個小的激活程序,想部署到tomcat中,中途遇到了點問題記錄一下。
本地打包maven項目的過程其實只需要在本地啟動一下項目,在target文件夾下就會生成war包。
將編譯好的war包copy到webapps文件夾下,配置一下conf文件夾中的server.xml文件,主要是docBase的配置,如果不配置則啟動tomcat時會解壓打ROOT目錄。我的war名稱是cardActive.war,所以我配置如下:
<Context docBase="cardActive" path="/" reloadable="true" privileged="true"/>
啟動過程中在輸出日志中看到了如下錯誤:WEB-INF/lib/servlet-api-2.5.jar) - jar not loaded(截取的部分),網上說是和tomcat的本身的jar沖突,於是在這上面矯情了很久,但是忽略了下面的錯誤:
One or more listeners failed to start. Full details will be found in the appropriate container log
這個就有點尷尬了,因為沒有找到相關的日志文件記錄了相關詳細日志,於是查了一下,找到如下解決辦法:
在WEB-INF/classes目錄(完整本機路徑是:/Users/shen/Downloads/apache-tomcat-cardActive/webapps/ROOT/WEB-INF/classes)下新建logging.properties文件,填充內容:
handlers = org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
############################################################
# Handler specific properties.
# Describes specific configuration info for Handlers.
############################################################
org.apache.juli.FileHandler.level = FINE
org.apache.juli.FileHandler.directory = ../logs
org.apache.juli.FileHandler.prefix = error-debug.
java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
此操作是為了配置打印詳細錯誤日志,然后重啟tomcat,此時在tomcat的logs目錄下就可以找到對應的錯誤日志文件: error-debug.log,本機詳細路徑是:
/Users/shen/Downloads/apache-tomcat-cardActive/logs
打開該生成的日志文件后發現其實報錯的真正原因是數據源沒有配置,於是問題解決,項目啟動成功。