## 背景 一直以來習慣用docker配置一些本地學習環境,許多教程配置activiti的方式都是通過複製activiti的war包部署在tomcat中,我嘗試了一下通過docker的方式遇到了一些不易察覺的錯誤。 ## 使用方式描述 1. 使用docker安裝tomcat9.0 `docker r ...
背景
一直以來習慣用docker配置一些本地學習環境,許多教程配置activiti的方式都是通過複製activiti的war包部署在tomcat中,我嘗試了一下通過docker的方式遇到了一些不易察覺的錯誤。
使用方式描述
- 使用docker安裝tomcat9.0
docker run -d -p 8080:8080 --name tomcat tomcat:9.0
- 複製activiti的war包
- 瀏覽器訪問404
分析
- 使用docker desktop view detail(根據tomcat的版本不同也會有其它的類的ClassNotFoundException)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBException
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1412)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1220)
... 186 more
- 進一步查看tomcat的log日誌初步猜測是jdk版本問題。
- 查看tomcat容器環境變數
- 查看官網文檔得知需要jdk1.7+,也許jdk17過高,切換成jdk8也許可以。
- 使用jdk8的tomcat,直接使用tomcat7.0的鏡像。