我正在使用 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
提交
取消