为了账号安全,请及时绑定邮箱和手机立即绑定

错误:无法找到或加载主类 org.apache.catalina.startup.Bootstrap

错误:无法找到或加载主类 org.apache.catalina.startup.Bootstrap

一只甜甜圈 2023-05-17 14:46:31
我正在使用 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 的目的 :)


查看完整回答
反对 回复 2023-05-17
?
慕侠2389804

TA贡献1719条经验 获得超6个赞

清理了项目,它又开始工作了。

Project -> Clean 将删除任何现有的类文件并完全重建项目。


查看完整回答
反对 回复 2023-05-17
  • 2 回答
  • 0 关注
  • 523 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信