org.springframework.beans.factory.BeanCreationException: Error creating bean with name

来源:互联网 发布:游戏视频直播软件 编辑:程序博客网 时间:2024/05/04 09:47

 最近被一个bug折腾了很久,我在我本机(win系统)测试工程没有问题,但是将工程放入linux系统应会报错。其实类似的bug之前也解决过,只不过由于原因不同外加当时没有记录,所以在此对这一bug进行记录,不仅为自己提醒也希望对其他人有所帮助。以下是我的报错信息:

log4j:webMainFrame: 2016年09月13日 15:44:05,872 INFO  - Destroying singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@b07108e: defining beans [org.springframework.beans.factory.config.PropertyPlaceholderConfigurer#0,dataSourceStrat,commDaoStrat,transactionManager,baseTransProxy,HnMachineMonitorDaoImpl,HnMachineMonitorServiceImpl,OperationLogServiceImpl,OperationLogDao,myTransactionManager]; root of factory hierarchy
log4j:webMainFrame: 2016年09月13日 15:44:05,872 DEBUG  - Retrieved dependent beans for bean 'dataSourceStrat': [commDaoStrat, transactionManager, HnMachineMonitorDaoImpl, myTransactionManager]
log4j:webMainFrame: 2016年09月13日 15:44:05,872 DEBUG  - Invoking destroy method 'close' on bean with name 'dataSourceStrat'
log4j:webMainFrame: 2016年09月13日 15:44:05,873 ERROR  - Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'HnMachineMonitorServiceImpl' defined in ServletContext resource [/WEB-INF/classes/resources/applicationContext.xml]: Cannot create inner bean 'com.szty.gcp.inter.service.impl.HnmachineMonitorServiceImpl#5867df9' of type [com.szty.gcp.inter.service.impl.HnmachineMonitorServiceImpl] while setting bean property 'target'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.szty.gcp.inter.service.impl.HnmachineMonitorServiceImpl#5867df9' defined in ServletContext resource [/WEB-INF/classes/resources/applicationContext.xml]: Instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: javax/xml/rpc/ServiceException
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:230)
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:117)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1245)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1010)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:472)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:423)
    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.ContextLoaderServlet.init(ContextLoaderServlet.java:81)
    at javax.servlet.GenericServlet.init(GenericServlet.java:212)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1213)
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1026)
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4425)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4738)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:802)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:583)
    at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1080)
    at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1003)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:507)
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1322)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:325)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1068)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:822)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1060)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
    at org.apache.catalina.core.StandardService.start(StandardService.java:525)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:759)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:616)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.szty.gcp.inter.service.impl.HnmachineMonitorServiceImpl#5867df9' defined in ServletContext resource [/WEB-INF/classes/resources/applicationContext.xml]: Instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: javax/xml/rpc/ServiceException
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:883)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:839)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:440)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:219)
    ... 45 more
Caused by: java.lang.NoClassDefFoundError: javax/xml/rpc/ServiceException
    at java.lang.Class.getDeclaredConstructors0(Native Method)
    at java.lang.Class.privateGetDeclaredConstructors(Class.java:2406)
    at java.lang.Class.getConstructor0(Class.java:2716)
    at java.lang.Class.getDeclaredConstructor(Class.java:2002)
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:54)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:877)
    ... 51 more
Caused by: java.lang.ClassNotFoundException: javax.xml.rpc.ServiceException
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)

解决方法:

以上信息是具体的错误,但最主要的是标红的信息,从中可以看出是由于缺少类所导致,但是倒底是缺少哪个类,在哪个jar并不知道。所以我将 javax.xml.rpc.ServiceException 随便放入一个类,如图

这样就能找出对应相关jar包,但是在我工程里明明是有此jar包为什么还会报错呢,我在网上查了一些资料,找到了相应的原因:有很多jar包里面有这个类比如jaxrpc-api.jar,axis-jaxrpc-*.jar, javaee-api-5.0-1.jar等等,具体看你的工程用的是哪个。所以根据这一条结合我自己的项目,我确定我应该是缺少了axis-jaxrpc-*.jar包。

所以将此jar包导入项目即可正常。

PS:至于为什么在win本地上可以正常,但到linux上却报错还不得而知,后续了解后会进一步更新。

0 0