使用Spring Annotation注解导致jar包更新的文件扫描不到

来源:互联网 发布:知豆汽车有限公司待遇 编辑:程序博客网 时间:2024/05/20 18:43

问题出现场景:

由于项目比较大, 分了多个模块, 公共模块都是jar包的方式引入的, 之前使用的maven来管理并生成jar包, 所以没发生过这种情况, 目前的项目没使用maven,所以核心公共包都是更改后直接通过eclipse/myeclipse打包之后丢进去的,今天更新了其中一个包之后,项目启动出现如下错误:

org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [sundun.fm.service.imp.FmTemplateServiceImp] is defined: expected single bean but found 0: 


具体错误信息如下:

org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [sundun.fm.service.imp.FmTemplateServiceImp] is defined: expected single bean but found 0: 
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:276)
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1113)
at sundun.core.util.spring.ServiceLocator.getBean(ServiceLocator.java:58)
at sundun.rdp.web.SystemStart.initTemplate(SystemStart.java:234)
at sundun.rdp.web.SystemStart.init(SystemStart.java:92)
at javax.servlet.GenericServlet.init(GenericServlet.java:241)
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:799)
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:1079)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1002)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:506)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1317)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:324)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1065)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:822)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
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:754)
at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
2015-1-24 11:09:21 org.apache.catalina.core.StandardContext loadOnStartup


最后究其根本原因,发现是在打包那一环节出现的问题

  • 用spring的注解,打包的时候要把Add directory entries选项勾上, 不然jar里面改过的类扫描不到, 启动就会报错


勾上之后再重新打包就没问题了。








0 0