【问题标题】:Tomcat 7 java.lang.NoSuchMethodError: main - Mac OS X 10.6Tomcat 7 java.lang.NoSuchMethodError: main - Mac OS X 10.6
【发布时间】:2011-09-09 17:58:57
【问题描述】:

我在 /usr/local 中解压了 tar 文件,并在 /Library/Tomcat 中创建了一个符号链接。从那里我使 /bin 中的所有 .sh 文件都可以执行。启动时,我什么也没得到,包括访问 localhost:8080 时出现的正常“无法连接”。检查我的 catalina.out 会为我尝试启动它的每个实例显示“线程“主”java.lang.NoSuchMethodError:main 中的异常”。我遵循了许多教程,包括那些 herehere,但似乎没有任何帮助解决问题。

编辑:这是启动 Tomcat 时的跟踪

使用 CATALINA_BASE:/Library/Tomcat
使用 CATALINA_HOME:/Library/Tomcat
使用 CATALINA_TMPDIR:/Library/Tomcat/temp
使用 JRE_HOME:/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home
使用 CLASSPATH:/Library/Tomcat/bin/bootstrap.jar:/Library/Tomcat/bin/tomcat-juli.jar

【问题讨论】:

  • 你设置CATALINA_HOME环境变量了吗?
  • 向我们展示来自日志文件的堆栈跟踪。
  • 我们还是要看看哪个方法没找到

标签: java apache tomcat


【解决方案1】:

您用于启动 Tomcat 的类路径中似乎有不兼容的 jar 文件(例如 Tomcat 7 可能依赖于库 foo.jar 版本 1.2,但您安装了 1.1)

确定的唯一方法是查看 strack 跟踪(Tomcat 期望什么方法以及在哪个类中)。这将导致您遇到问题。

【讨论】:

  • 你能给我一些关于如何获取所述堆栈跟踪的提示吗?
  • java.lang.NoSuchMethodError: main下面的行是什么?那将是您的堆栈跟踪,以及您是如何启动 tomcat 的?你能告诉我们你使用的命令吗?
  • catalina.out 中的每一行都是“线程中的异常”main“java.lang.NoSuchMethodError: main”。每次启动只有一个例外,所以它不会在这个过程中走得太远。要启动 tomcat,我 cd 到 /bin 并简单地运行 ./startup.sh。
  • 我发现这是catalina.sh中出现问题的部分:eval \"$_RUNJAVA\" \"$LOGGING_CONFIG\" $JAVA_OPTS $CATALINA_OPTS \ -Djava.endorsed.dirs=\"$JAVA_ENDORSED_DIRS\" -classpath \"$CLASSPATH\" \ -Djava.security.manager \ -Djava.security.policy==\"$CATALINA_BASE/conf/catalina.policy\" \ -Dcatalina.base=\"$CATALINA_BASE\" \ -Dcatalina.home=\"$CATALINA_HOME\" \ -Djava.io.tmpdir=\"$CATALINA_TMPDIR\" \ org.apache.catalina.startup.Bootstrap "$@" start
  • bootstrap.jar 肯定在类路径中。我真的很困惑为什么它找不到 Bootstrap.main()。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-31
  • 1970-01-01
  • 2011-07-29
  • 2011-06-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多