直接说问题原因吧! 是由于jdk版本不同导致。
问题回顾:
通过eclipse发布一个项目到tomcat默认的运行目录下,然后通过tomcat直接跑,就出现这类问题。
原因:
我的电脑同时使用两个jdk版本,默认1.7,eclipse使用的是1.8,,由于项目启动时有加载类需要jdk1.8的包,1.7不支持。所以导致项目在eclipse直接能够跑,而在外面的tomcat跑是就出现startup failed due to previous errors的错误.
但是这样的提示信息问题还是表达比较含糊,下面我们开始重新理思绪,通过查看日志来分析原因。
为了调试,我们要获得更详细的日志。可以在WEB-INF/classes目录下新建一个文件叫logging.properties
handlers = org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
############################################################
# Handler specific properties.
# Describes specific configuration info for Handlers.
############################################################
org.apache.juli.FileHandler.level = FINE
org.apache.juli.FileHandler.directory = ${catalina.base}/logs
org.apache.juli.FileHandler.prefix = error-debug.
java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
Tomcat的日志目录下会生成error-debug.***.log的文件。里面会提供较详细提示信息。我的反馈如下:
...Unsupported major.minor version 52.0 (unable to load class com.sdmc.controller.IndexController)...
版本不支持上面类的运行,但是编译时使用的是JDK1.8的包.所以eclipse上不会报错。
这种问题奇葩吧,好了废话不多说,感慨不大堆。总结是出现类似问题从日志开始。
如果早养成这样的习惯也不会让我耗了这么久,分分钟搞定
相关推荐:
http://blog.sina.com.cn/s/blog_826ca0d80102wl3f.html
http://blog.youkuaiyun.com/mcpang/article/details/5468386