我正在使用 cargo-maven2-plugin 來運行 tomcat 進行集成測試。使用 7x 容器時效果很好。我最近將它升級到 9x,它在 Ubuntu/Linux 機器上運行良好,但在 Mac(運行最新的操作系統版本)上不起作用。當我查看容器日志時,它會列出以下日志:Error: Could not find or load main class org.apache.catalina.startup.BootstrapListening for transport dt_socket at address: 7998Error: Could not find or load main class org.apache.catalina.startup.Bootstrap當我查看貨物日志時,它列出了以下日志:The ' characters around the executable and arguments arenot part of the command.[10:46:34.640][debug][talledLocalContainer] +Task: java[10:46:34.642][debug][talledLocalContainer] dropping /Users/myprojectpath/target/tomcat-9.0.22/bin/tomcat-juli.jar from path as it doesn't exist[10:46:34.642][debug][talledLocalContainer] dropping /Users/myprojectpath/target/tomcat-9.0.22/bin/bootstrap.jar from path as it doesn't exist[10:46:34.643][debug][talledLocalContainer] dropping /Users/myprojectpath/target/tomcat-9.0.22/bin/tomcat-juli.jar from path as it doesn't exist[10:46:34.643][debug][talledLocalContainer] dropping /Users/myprojectpath/target/tomcat-9.0.22/bin/bootstrap.jar from path as it doesn't exist[10:46:34.643][debug][talledLocalContainer] Executing '/Library/Java/JavaVirtualMachines/jdk1.8.0_172.jdk/Contents/Home/jre/bin/java' with arguments:'-Xdebug''-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=7998''-DprocessName=central''-Xms256m''-Xmx512m''-Dfile.encoding=utf-8''-Dhsqldb.database=/Users/myprojectpath/target/tomcat-9.0.22/tomcat/hsqldb/myprojectdbname''-Dhsqldb.dbname=myprojectdbname''-Dhsqldb.port=9001''-Duser.language=en'
2 回答

蕪湖不蕪
TA貢獻1796條經驗 獲得超7個贊
根據貨物日志,類路徑中的 tomcat-juli 和 bootstrap jar 都被丟棄了。那太好了。為什么要添加一個不存在的罐子?即這些罐子不在位置:/Users/myprojectpath/target/tomcat-9.0.22/bin
但是他們住在哪里呢?好吧,它們位于:/Users/myprojectpath/target/tomcat-9.0.22/tomcat/bin
進一步查看 cargo 日志,java 任務是使用這些 jvm args 執行的,其中包括:
-Dcatalina.home=/Users/myprojectpath/target/tomcat-9.0.22 -Dcatalina.base=/Users/myprojectpath/target/tomcat-9.0.22/tomcat
現在連接點,假設 tomcat-juli 和 bootstrap jar 位于 catalina.home 但它們駐留在 catalina.base,不是嗎?很容易修復,對吧?
那么如何設置catalina.home呢?向 cargo.jvm.args 添加一個額外的參數?N??,沒用。然后怎樣呢?因為它是一個 Maven 貨物插件/容器,所以可能有一個配置?是的,有一個叫做<home>
under?<container>
。最后!
盡管如此,我仍然不知道為什么 ubuntu/linux 機器不需要此配置來運行本地 tomcat 容器進行集成測試。
但我確實理解 catalina.base 和 catalina.home 的目的 :)
添加回答
舉報
0/150
提交
取消