本文将分享org.springframework.beans.factory.CannotLoadBeanClassException:找不到类的详细内容,并且还将对spring找不到或无法加载主类进
本文将分享org.springframework.beans.factory.CannotLoadBeanClassException:找不到类的详细内容,并且还将对spring 找不到或无法加载主类进行详尽解释,此外,我们还将为大家带来关于Bean实例化报错org.springframework.beans.factory.BeanCreationException、Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name...、Error starting Tomcat context. Exception: org.springframework.beans.factory.BeanCreationException、org.springframework.beans.factory.BeanCreationExce的相关知识,希望对你有所帮助。
本文目录一览:- org.springframework.beans.factory.CannotLoadBeanClassException:找不到类(spring 找不到或无法加载主类)
- Bean实例化报错org.springframework.beans.factory.BeanCreationException
- Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name...
- Error starting Tomcat context. Exception: org.springframework.beans.factory.BeanCreationException
- org.springframework.beans.factory.BeanCreationExce
org.springframework.beans.factory.CannotLoadBeanClassException:找不到类(spring 找不到或无法加载主类)
我从tomcat 6.0安装目录中的servle-api.com替换了j2ee.jar:并产生以下错误。我目前正在尝试找出原因。可能是什么问题。
我在配置文件中定义了一个bean: Sempedia-service.xml,如下所示
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> <bean id="sempediaSearchService"/></beans>
我的 web.xml 指定了以下bean:
<context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/Sempedia-service.xml,/WEB-INF/Sempedia-persistence.xml</param-value></context-param><listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener>
堆栈跟踪
SEVERE: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListenerorg.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [com.service.SempediaSearchManager] for bean with name ''sempediaSearchService'' defined in ServletContext resource [/WEB-INF/Sempedia-service.xml]; nested exception is java.lang.ClassNotFoundException: com.service.SempediaSearchManager at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1141) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:524) at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1177) at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:758) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:422) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:380) at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255) at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199) at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3934) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4429) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) at org.apache.catalina.core.StandardHost.start(StandardHost.java:722) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) at org.apache.catalina.core.StandardService.start(StandardService.java:516) at org.apache.catalina.core.StandardServer.start(StandardServer.java:710) at org.apache.catalina.startup.Catalina.start(Catalina.java:583) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)Caused by: java.lang.ClassNotFoundException: com.service.SempediaSearchManager at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233) at org.springframework.util.ClassUtils.forName(ClassUtils.java:211) at org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:385) at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1138) ... 24 more
答案1
小编典典问题在于com.service.SempediaSearchManager
您的Web应用程序的类路径中没有调用任何类。最可能的根本原因是:
完全合格的类名在中不正确
/WEB-INF/Sempedia-service.xml
;即类名是别的,该类不在Webapp的
/WEB-INF/classes
目录树中,也不在目录中的JAR文件中/WEB-INF/lib
。
编辑
:我能想到的唯一的另一件事是,这ClassDefNotFoundException
实际上可能是较早的类加载/静态初始化问题的结果。检查日志文件中的
第一个 堆栈跟踪,并查看嵌套异常,即“ caused”链。[如果类加载一次失败,并且您或SpringClass.forName()
由于某种原因再次调用,那么Java实际上不会尝试第二次加载。相反,您将获得一个ClassDefNotFoundException
堆栈跟踪,该跟踪不能解释原始故障的真正原因。]
如果您仍然感到困惑,则应该将Eclipse排除在外。以最终将要部署的格式创建WAR文件,然后从命令行进行创建:
手动关闭Tomcat
清理您的Tomcat webapp目录,
将WAR文件复制到webapp目录中,
启动Tomcat。
如果那不能直接解决问题,请查看Tomcat上已部署的webapp目录,以确认“ missing”类在正确的位置。
Bean实例化报错org.springframework.beans.factory.BeanCreationException
近日在使用Spring boot 2.0.0.RELEASE 运行时,抛出了bean注入异常
代码如下:
@Bean public FilterRegistrationBean httpFilter(){ FilterRegistrationBean registrationBean = new FilterRegistrationBean(); registrationBean.setFilter(new HttpFilter()); registrationBean.addUrlPatterns("/threadLocal/*"); return registrationBean; }
报错信息大致如下:
2018-03-31 14:00:30.356 ERROR 18536 --- [ main] o.s.boot.SpringApplication : Application run failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name ''httpFilter'' defined in com.mmall.concurrency.ConcurrencyApplication: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.boot.web.servlet.FilterRegistrationBean]: Factory method ''httpFilter'' threw exception; nested exception is java.lang.NoClassDefFoundError: javax/servlet/Filter
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:587) ~[spring-beans-5.0.4.RELEASE.jar:5.0.4.RELEASE]
..........
查看pom文件,找到是内置的tomcat的jar所引起的冲突报错
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency>
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name...
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name ''requestMappingHandlerMapping'' defined in class path resource [org/springframework/web/servlet/config/annotation/DelegatingWebMvcConfiguration.class]: Invocation of init method failed; nested exception is java.lang.IllegalStateException: Ambiguous mapping found. Cannot map ''portDetailController'' bean method
public java.util.List<cn.kkou.creditsys.back.dto.portdetail.PortStat> cn.kkou.creditsys.back.web.controller.portdetail.PortDetailController.getPorts()
to {[/port/port],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}: There is already ''portDetailController'' bean method
public java.util.List<cn.kkou.creditsys.back.dto.stat.AreaStat> cn.kkou.creditsys.back.web.controller.portdetail.PortDetailController.orderByPort(java.lang.String) mapped.
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1554) ~[spring-beans-4.0.8.RELEASE.jar:4.0.8.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539) ~[spring-beans-4.0.8.RELEASE.jar:4.0.8.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475) ~[spring-beans-4.0.8.RELEASE.jar:4.0.8.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:302) ~[spring-beans-4.0.8.RELEASE.jar:4.0.8.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228) ~[spring-beans-4.0.8.RELEASE.jar:4.0.8.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:298) ~[spring-beans-4.0.8.RELEASE.jar:4.0.8.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193) ~[spring-beans-4.0.8.RELEASE.jar:4.0.8.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:1021) ~[spring-beans-4.0.8.RELEASE.jar:4.0.8.RELEASE]
29-May-2018 14:27:44.987 严重 [RMI TCP Connection (3)-127.0.0.1] org.apache.catalina.core.StandardContext.startInternal One or more listeners failed to start. Full details will be found in the appropriate container log file
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:916) ~[spring-beans-4.0.8.RELEASE.jar:4.0.8.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:862) ~[spring-beans-4.0.8.RELEASE.jar:4.0.8.RELEASE]
at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:811) ~[spring-beans-4.0.8.RELEASE.jar:4.0.8.RELEASE]
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:739) ~[spring-beans-4.0.8.RELEASE.jar:4.0.8.RELEASE]
... 68 common frames omitted
29-May-2018 14:27:44.988 严重 [RMI TCP Connection (3)-127.0.0.1] org.apache.catalina.core.StandardContext.startInternal Context [] startup failed due to previous errors
Caused by: java.lang.IllegalStateException: Ambiguous mapping found. Cannot map ''portDetailController'' bean method
public java.util.List<cn.kkou.creditsys.back.dto.portdetail.PortStat> cn.kkou.creditsys.back.web.controller.portdetail.PortDetailController.getPorts()
to {[/port/port],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}: There is already ''portDetailController'' bean method
public java.util.List<cn.kkou.creditsys.back.dto.stat.AreaStat> cn.kkou.creditsys.back.web.controller.portdetail.PortDetailController.orderByPort(java.lang.String) mapped.
at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.registerHandlerMethod(AbstractHandlerMethodMapping.java:192) ~[spring-webmvc-4.0.8.RELEASE.jar:4.0.8.RELEASE]
at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.detectHandlerMethods(AbstractHandlerMethodMapping.java:164) ~[spring-webmvc-4.0.8.RELEASE.jar:4.0.8.RELEASE]
at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.initHandlerMethods(AbstractHandlerMethodMapping.java:124) ~[spring-webmvc-4.0.8.RELEASE.jar:4.0.8.RELEASE]
at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.afterPropertiesSet(AbstractHandlerMethodMapping.java:103) ~[spring-webmvc-4.0.8.RELEASE.jar:4.0.8.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping.afterPropertiesSet(RequestMappingHandlerMapping.java:126) ~[spring-webmvc-4.0.8.RELEASE.jar:4.0.8.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1613) ~[spring-beans-4.0.8.RELEASE.jar:4.0.8.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1550) ~[spring-beans-4.0.8.RELEASE.jar:4.0.8.RELEASE]
... 79 common frames omitted
[2018-05-29 02:27:45,026] Artifact back-web:war: Error during artifact deployment. See server log for details.
报错原因:controller 中有两个相同的 requestMapping
Error starting Tomcat context. Exception: org.springframework.beans.factory.BeanCreationException
Error starting Tomcat context. Exception: org.springframework.beans.factory.BeanCreationException. Message: Error creating bean with name ''servletEndpointRegistrar'' defined in class path resource [org/springframework/boot/actuate/autoconfigure/endpoint/web/ServletEndpointManagementContextConfiguration$WebMvcServletEndpointManagementContextConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.boot.actuate.endpoint.web.ServletEndpointRegistrar]: Factory method ''servletEndpointRegistrar'' threw exception; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ''healthEndpoint'' defined in class path resource [org/springframework/boot/actuate/autoconfigure/health/HealthEndpointConfiguration.class]: Unsatisfied dependency expressed through method ''healthEndpoint'' parameter 1; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ''healthIndicatorRegistry'' defined in class path resource [org/springframework/boot/actuate/autoconfigure/health/HealthIndicatorAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.boot.actuate.health.HealthIndicatorRegistry]: Factory method ''healthIndicatorRegistry'' threw exception; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ''org.springframework.boot.actuate.autoconfigure.jdbc.DataSourceHealthIndicatorAutoConfiguration'': Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ''dataSource'' defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Hikari.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.zaxxer.hikari.HikariDataSource]: Factory method ''dataSource'' threw exception; nested exception is org.springframework.boot.autoconfigure.jdbc.DataSourceProperties$DataSourceBeanCreationException: Failed to determine a suitable driver class
这是什么原因造成的呢?
我自己摸索了很久发现,该项目的在pom文件中的这个看图:
没错,packaging标签我们不应该写成pom,要嘛不写去掉,要嘛就写成jar。
然后重启springBoot项目就不会报这个错误了,希望能帮到大家。
org.springframework.beans.factory.BeanCreationExce
??: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name ''baseDao'' defined in file [/Users/jackshi/Documents/ws/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/JiracleGWT/WEB-INF/classes/com/yxtar/server/cassandra/dao/BaseDao.class]: Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: ''sessionFactory'' or ''hibernateTemplate'' is required
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1514)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:521)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:293)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:290)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:191)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:636)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:934)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:403)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:106)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4961)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5455)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
Caused by: java.lang.IllegalArgumentException: ''sessionFactory'' or ''hibernateTemplate'' is required
at org.springframework.orm.hibernate3.support.HibernateDaoSupport.checkDaoConfig(HibernateDaoSupport.java:123)
at org.springframework.dao.support.DaoSupport.afterPropertiesSet(DaoSupport.java:44)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1573)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1511)
... 21 more
dao的父类注入sessionfactory
@Repository
public class BaseDao extends HibernateDaoSupport {
@Autowired
public void setSessionFactory0(SessionFactory sessionFactory){
super.setSessionFactory(sessionFactory);
}
}
关于org.springframework.beans.factory.CannotLoadBeanClassException:找不到类和spring 找不到或无法加载主类的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于Bean实例化报错org.springframework.beans.factory.BeanCreationException、Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name...、Error starting Tomcat context. Exception: org.springframework.beans.factory.BeanCreationException、org.springframework.beans.factory.BeanCreationExce等相关知识的信息别忘了在本站进行查找喔。
本文标签: