Eclipse+Spring出现javax.servlet.ServletException: Servlet.init()..错误

黑夜愁客 2013-02-16 01:38:01
Eclipse+Maven+Spring,按照教程去做第一个Sample.
在Tomcat中执行出现:
Servlet.init() for servlet MyDispatcherServlet threw exception

description The server encountered an internal error that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: Servlet.init() for servlet MyDispatcherServlet threw exception
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1813)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
java.lang.Thread.run(Thread.java:722)


root cause

org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component class: file [C:\ItDevelop\Tomcat7\webapps\Spring-MVC-0.0.1-SNAPSHOT\WEB-INF\classes\controller\MyController.class]; nested exception is java.lang.IncompatibleClassChangeError: class org.springframework.core.type.classreading.ClassMetadataReadingVisitor has interface org.springframework.asm.ClassVisitor as super class
org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.findCandidateComponents(ClassPathScanningCandidateComponentProvider.java:281)
org.springframework.context.annotation.ClassPathBeanDefinitionScanner.doScan(ClassPathBeanDefinitionScanner.java:242)
org.springframework.context.annotation.ComponentScanBeanDefinitionParser.parse(ComponentS


代码参考例子: https://github.com/khyiu/Spring-MVC-Tutorials
原文:http://kh-yiu.blogspot.com/2012/05/quick-tutorial-to-spring-mvc-with-maven.html
请问哪里配置不对吗? 多谢
...全文
15686 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
muzi1314_ 2015-09-20
  • 打赏
  • 举报
回复
同样问题,。。。。。。。。。。
chenthe1 2015-08-27
  • 打赏
  • 举报
回复
你好,在tomcat下部署两个或多个项目时,web.xml文件中最好定义webAppRootKey参数,如果不定义,将会缺省为“webapp.root”,如下: <!-- 应用路径 --> <context-param> <param-name>webAppRootKey</param-name> <param-value>webapp.root</param-value> </context-param> 最好在每个项目设置webAppRootKey的参数值不同,以免引起项目冲突 。 不知道这个对你有没有帮助。。。
  • 打赏
  • 举报
回复
下载jar包先看说明
dracularking 2013-02-17
  • 打赏
  • 举报
回复
引用 21 楼 yexin218 的回复:
引用 20 楼 dracularking 的回复:org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component class: file [C:\ItDevelop\Tomcat7\webapps\Spring-MVC-0.0.1-SNAP……
关键找下这个类ClassMetadataReadingVisitor,在这两个jar包中的存在情况,再做下一步判断。
黑夜愁客 2013-02-17
  • 打赏
  • 举报
回复
引用 20 楼 dracularking 的回复:
org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component class: file [C:\ItDevelop\Tomcat7\webapps\Spring-MVC-0.0.1-SNAPSHOT\WEB-INF\classes\cont……
现在肯定是这个问题了。但是不知道为什么spring 3.2.1中导入spring-webmvc.jar却不行。改为用3.1.4用了org.springframework.web.servlet-3.1.4.RELEASE.jar就可以了。
dracularking 2013-02-17
  • 打赏
  • 举报
回复
org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component class: file [C:\ItDevelop\Tomcat7\webapps\Spring-MVC-0.0.1-SNAPSHOT\WEB-INF\classes\controller\MyController.class]; nested exception is java.lang.IncompatibleClassChangeError: class org.springframework.core.type.classreading.ClassMetadataReadingVisitor has interface org.springframework.asm.ClassVisitor as super class 这个root cause报错基本昭示了:spring所搜索到的class不符合其要求(虽然name没错,但其interface有问题),而这种问题多半是引入并使用了错误的jar包所致。
  • 打赏
  • 举报
回复
还是只有一个spring.jar的好。
黑夜愁客 2013-02-17
  • 打赏
  • 举报
回复
引用 17 楼 fangmingshijie 的回复:
看下官方说明,应该和哪个jar包合并了吧
看样子应该是在spring-webmvc.jar,可是我也在3.2.1中加载该jar http://www.iteye.com/problems/9660
  • 打赏
  • 举报
回复
看下官方说明,应该和哪个jar包合并了吧
黑夜愁客 2013-02-17
  • 打赏
  • 举报
回复
引用 15 楼 fangmingshijie 的回复:
参考: http://blog.csdn.net/sunitjy/article/details/6782431 http://javacrazyer.iteye.com/blog/790834
我应该是少了一个org.springframework.web.servlet-3.1.4.RELEASE.jar。 不知道为什么3.2.1中没有这个jar,我全部改为3.1.4,加载这个JAR,然后就成功了。 现在问题是,这个jar在3.2中为何没有啊。
zuxianghuang 2013-02-16
  • 打赏
  • 举报
回复
注入组件类,有问题 配置文件是怎么样的?
  • 打赏
  • 举报
回复
看下web.xml配置
  • 打赏
  • 举报
回复
参考: http://blog.csdn.net/sunitjy/article/details/6782431 http://javacrazyer.iteye.com/blog/790834
  • 打赏
  • 举报
回复
搜下资料学习下,刚开始先一个框架的搞明白,然后再框架整合。
黑夜愁客 2013-02-16
  • 打赏
  • 举报
回复
引用 12 楼 fangmingshijie 的回复:
maven去掉,单独测试下看是否报错。
好像也不行啊~
  • 打赏
  • 举报
回复
maven去掉,单独测试下看是否报错。
黑夜愁客 2013-02-16
  • 打赏
  • 举报
回复


引用 9 楼 lvzg_005 的回复:
缺少jar包或者jar包冲突导致的,你的war包中的lib文件下不可能只有spring的jar包,还有相关的辅助jar包呢。

虽然你使用maven管理的依赖,但是我觉得你打war的过程中丢失了很多jar吧,可以看源工程下的jar和打出war包的jar是否一样?
黑夜愁客 2013-02-16
  • 打赏
  • 举报
回复


引用 9 楼 lvzg_005 的回复:
缺少jar包或者jar包冲突导致的,你的war包中的lib文件下不可能只有spring的jar包,还有相关的辅助jar包呢。

虽然你使用maven管理的依赖,但是我觉得你打war的过程中丢失了很多jar吧,可以看源工程下的jar和打出war包的jar是否一样?

我也不清楚其他那些辅助的JAR
lvzg_005 2013-02-16
  • 打赏
  • 举报
回复
缺少jar包或者jar包冲突导致的,你的war包中的lib文件下不可能只有spring的jar包,还有相关的辅助jar包呢。 虽然你使用maven管理的依赖,但是我觉得你打war的过程中丢失了很多jar吧,可以看源工程下的jar和打出war包的jar是否一样?
黑夜愁客 2013-02-16
  • 打赏
  • 举报
回复
controller\MyController.class]; nested exception is java.lang.IncompatibleClassChangeError: class org.springframework.core.type.classreading.ClassMetadataReadingVisitor has interface org.springframework.asm.ClassVisitor as super class 这个是冲突吗
加载更多回复(5)

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧