首页 > 开发 > JAVA > 正文

jetty+mybatis+spring+spring mvc部署到linux上时报错,在本地测试正常

2017-09-07 09:24:20  来源:网友分享

本地项目使用maven管理,git做为版本控制,内嵌jetty做web容器,在本地启动和测试一切正常,但放到linux服务器上后显示spring注释的属性注入失败。本地和服务器端的jar包完全一致,jdk为1.7。jetty版本为8.1.2.v20120308。spring和spring mvc版本均为3.2.4.RELEASE。实在搞不清楚是什么问题了。

尝试过的解决方案:1.更换过spring低版本,到3.2.0。2.web.xml中加过metadata-complete="true"无效

2013-11-05 09:33:55.986:INFO:/:Initializing Spring FrameworkServlet 'action'13/11/05 09:33:56 ERROR org.springframework.web.servlet.DispatcherServlet:467: Context initialization failedorg.springframework.beans.factory.BeanCreationException: Error creating bean with name 'boutiqueControllerMongo': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.expai.service.boutique.BoutiqueService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@javax.annotation.Resource(shareable=true, mappedName=, description=, name=, type=class java.lang.Object, authenticationType=CONTAINER, lookup=), @org.springframework.beans.factory.annotation.Qualifier(value=boutiqueServiceImpl)}    at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:306)    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1116)    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458)    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:628)    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)    at org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:651)    at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:599)    at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:665)    at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:518)    at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:459)    at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136)    at javax.servlet.GenericServlet.init(GenericServlet.java:244)    at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:492)    at org.eclipse.jetty.servlet.ServletHolder.doStart(ServletHolder.java:312)    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)    at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:777)    at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:258)    at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1221)    at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:699)    at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:454)    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)    at org.eclipse.jetty.server.handler.HandlerCollection.doStart(HandlerCollection.java:224)    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)    at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:90)    at org.eclipse.jetty.server.Server.doStart(Server.java:263)    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)    at com.expai.server.APIServer.main(APIServer.java:79)Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.expai.service.boutique.BoutiqueService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@javax.annotation.Resource(shareable=true, mappedName=, description=, name=, type=class java.lang.Object, authenticationType=CONTAINER, lookup=), @org.springframework.beans.factory.annotation.Qualifier(value=boutiqueServiceImpl)}    at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:988)    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:858)    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:770)    at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:438)    at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:416)    at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:550)    at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:150)    at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87)    at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:303)    ... 32 more2013-11-05 09:33:56.188:WARN:/:unavailableorg.springframework.beans.factory.BeanCreationException: Error creating bean with name 'boutiqueControllerMongo': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.expai.service.boutique.BoutiqueService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@javax.annotation.Resource(shareable=true, mappedName=, description=, name=, type=class java.lang.Object, authenticationType=CONTAINER, lookup=), @org.springframework.beans.factory.annotation.Qualifier(value=boutiqueServiceImpl)}    at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:306)    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1116)    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458)    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:628)    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)    at org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:651)    at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:599)    at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:665)    at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:518)    at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:459)    at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136)    at javax.servlet.GenericServlet.init(GenericServlet.java:244)    at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:492)    at org.eclipse.jetty.servlet.ServletHolder.doStart(ServletHolder.java:312)    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)    at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:777)    at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:258)    at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1221)    at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:699)    at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:454)    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)    at org.eclipse.jetty.server.handler.HandlerCollection.doStart(HandlerCollection.java:224)    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)    at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:90)    at org.eclipse.jetty.server.Server.doStart(Server.java:263)    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)    at com.expai.server.APIServer.main(APIServer.java:79)Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.expai.service.boutique.BoutiqueService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@javax.annotation.Resource(shareable=true, mappedName=, description=, name=, type=class java.lang.Object, authenticationType=CONTAINER, lookup=), @org.springframework.beans.factory.annotation.Qualifier(value=boutiqueServiceImpl)}    at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:988)    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:858)    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:770)    at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:438)    at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:416)    at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:550)    at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:150)    at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87)    at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:303)    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1116)    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458)    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:628)    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)    at org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:651)    at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:599)    at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:665)    at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:518)    at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:459)    at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136)    at javax.servlet.GenericServlet.init(GenericServlet.java:244)    at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:492)    at org.eclipse.jetty.servlet.ServletHolder.doStart(ServletHolder.java:312)    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)    at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:777)    at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:258)    at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1221)    at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:699)    at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:454)    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)    at org.eclipse.jetty.server.handler.HandlerCollection.doStart(HandlerCollection.java:224)    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)    at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:90)    at org.eclipse.jetty.server.Server.doStart(Server.java:263)    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)    at com.expai.server.APIServer.main(APIServer.java:79)

解决方案

已经解决了,不知道为什么在resource后加上service的名称就解决了。。。。原因不明。