猿问

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

我正在使用 cargo-maven2-plugin 来运行 tomcat 进行集成测试。使用 7x 容器时效果很好。我最近将它升级到 9x,它在 Ubuntu/Linux 机器上运行良好,但在 Mac(运行最新的操作系统版本)上不起作用。


当我查看容器日志时,它会列出以下日志:


Error: Could not find or load main class org.apache.catalina.startup.Bootstrap

Listening for transport dt_socket at address: 7998

Error: Could not find or load main class org.apache.catalina.startup.Bootstrap

当我查看货物日志时,它列出了以下日志:


The ' characters around the executable and arguments are

not 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'



一只甜甜圈
浏览 525回答 2
2回答

芜湖不芜

根据货物日志,类路径中的 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 的目的 :)

慕侠2389804

清理了项目,它又开始工作了。Project -> Clean 将删除任何现有的类文件并完全重建项目。
随时随地看视频慕课网APP

相关分类

Java
我要回答