Spring MVC项目无法发布和运行...消息:无法内省注释

Ash*_*thy 9 spring spring-mvc

我有一个Spring MVC应用程序(4.1.1-Release版本).当我尝试在服务器上发布和运行时,我收到了下面提到的错误.

附加信息

  • 使用Spring Tool Suite 3.6.1
  • Spring版本4.1.1-RELEASE
  • 这是一个maven项目
  • 它没有任何编译错误
  • 当我做mvn clean install时,构建成功

org.springframework.beans.factory.BeanCreationException:在文件[/home/abc/Tools/sts-bundle/pivotal-tc-server-developer-3.0.0.RELEASE/base-instance中定义创建名为'homeController'的bean时出错/wtpwebapps/project-name/WEB-INF/classes/com/abc/project/HomeController.class]:bean类型[类com.abc.project.HomeController]的后处理失败失败; 嵌套异常是java.lang.IllegalStateException:无法内省注释:org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyMergedBeanDefinitionPostProcessors中的public java.lang.String com.abc.project.HomeController.hello()(AbstractAutowireCapableBeanFactory.java: 929)在Org.springframework.beans的org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513)org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476) .factory.support.AbstractBeanFactory $ 1.getObject(AbstractBeanFactory.java:302)位于org.springframework.beans.factory.support.AbstractBeanFactory的org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:229). doGetBean(AbstractBeanFactory.java:298)位于org.springframework.beans.factory.support.AbstractBeanFactory.getBean(在org.springframework的org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918)的org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:725)中的AbstractBeanFactory.java:193)位于org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java)的org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:403)中的.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:469) :306)在org.apache.catalina.core上的org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4760)的org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:106). StandardContext.startInternal(StandardContext.java:5184)位于org.apache.catalina.core的org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150).ContainerBase.addChildInternal(ContainerBase.java:724)在org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:700)在org.apache.catalina.core.StandardHost.addChild(StandardHost.java:714)在org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:581)atg.apache.catalina.startup.HostConfig $ DeployDescriptor.run(HostConfig.java:1686)at java.util.concurrent.Executors $ RunnableAdapter.调用(Executors.java:471)在java.util.concurrent.FutureTask.run(FutureTask.java:262)在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)在java.util.concurrent.ThreadPoolExecutor中java.lang.Thread.run中的$ Worker.run(ThreadPoolExecutor.java:615)(Thread.java:745)引起:java.lang.IllegalStateException:无法内省注释:public java.lang.String com.abc. org.springframework.core.annotation.Annotate上的org.springframework.core.annotation.AnnotatedElementUtils.process(AnnotatedElementUtils.java:166)中的project.HomeController.hello()org.springframework.core.annotation.AnnotatedElementUtils.getAnnotationAttributes(AnnotatedElementUtils.java:85)中的dElementUtils.getAnnotationAttributes(AnnotatedElementUtils.java:91)位于org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.findAutowiredAnnotation(AutowiredAnnotationBeanPostProcessor.java:416)在Org.springframework.beans.factory的org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.buildAutowiringMetadata(AutowiredAnnotationBeanPostProcessor.java:388)org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.findAutowiringMetadata(AutowiredAnnotationBeanPostProcessor.java:358)org.springframework.beans.factory .annotation.AutowiredAnnotationBeanPostProcessor.postProcessMergedBeanDefinition(AutowiredAnnotationBeanPostProcessor.java:233)在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyMergedBeanDefinitionPostProcessors(AbstractAutowireCapableBeanFactory.java:924)...... 25多所致 by:java.lang.NoSuchMethodError:org.springframework.core.annotation.AnnotationUtils.isInJavaLangAnnotationPackage(Ljava/lang/annotation/Annotation;)Z at org.springframework.core.annotation.AnnotatedElementUtils.doProcess(AnnotatedElementUtils.java:208)at org.springframework.core.annotation.AnnotatedElementUtils.process(AnnotatedElementUtils.java:162)... 32更多2014年10月29日下午5时00分21秒org.apache.catalina.core.StandardContext listenerStart严重:异常发送上下文初始化事件到监听器类org.springframework.web.context.ContextLoaderListener org.springframework.beans.factory.BeanCreationException的实例:错误创建名称为豆"的HomeController"在文件中定义[/家庭/ ABC /工具/ STS-束/关键-TC -server-developer-3.0.0.RELEASE/base-instance/wtpwebapps/project-name/WEB-INF/classes/com/abc/project/HomeController.class]:bean类型的后处理失败[类com.abc .project.HomeController]失败; 嵌套异常是java.lang.IllegalStateException:无法内省注释:org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyMergedBeanDefinitionPostProcessors中的public java.lang.String com.abc.project.HomeController.hello()(AbstractAutowireCapableBeanFactory.java: 929)在Org.springframework.beans的org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513)org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476) .factory.support.AbstractBeanFactory $ 1.getObject(AbstractBeanFactory.java:302)位于org.springframework.beans.factory.support.AbstractBeanFactory的org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:229). doGetBean(AbstractBeanFactory.java:298)位于org.springframework.beans.factory.support.AbstractBeanFactory.getBean(在org.springframework的org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918)的org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:725)中的AbstractBeanFactory.java:193)位于org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java)的org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:403)中的.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:469) :306)在org.apache.catalina.core上的org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4760)的org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:106). StandardContext.startInternal(StandardContext.java:5184)位于org.apache.catalina.core的org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150).ContainerBase.addChildInternal(ContainerBase.java:724)在org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:700)在org.apache.catalina.core.StandardHost.addChild(StandardHost.java:714)在org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:581)atg.apache.catalina.startup.HostConfig $ DeployDescriptor.run(HostConfig.java:1686)at java.util.concurrent.Executors $ RunnableAdapter.调用(Executors.java:471)在java.util.concurrent.FutureTask.run(FutureTask.java:262)在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)在java.util.concurrent.ThreadPoolExecutor中java.lang.Thread.run中的$ Worker.run(ThreadPoolExecutor.java:615)(Thread.java:745)引起:java.lang.IllegalStateException:无法内省注释:public java.lang.String com.abc. org.springframework.core.annotation.Annotate上的org.springframework.core.annotation.AnnotatedElementUtils.process(AnnotatedElementUtils.java:166)中的project.HomeController.hello()org.springframework.core.annotation.AnnotatedElementUtils.getAnnotationAttributes(AnnotatedElementUtils.java:85)中的dElementUtils.getAnnotationAttributes(AnnotatedElementUtils.java:91)位于org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.findAutowiredAnnotation(AutowiredAnnotationBeanPostProcessor.java:416)在Org.springframework.beans.factory的org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.buildAutowiringMetadata(AutowiredAnnotationBeanPostProcessor.java:388)org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.findAutowiringMetadata(AutowiredAnnotationBeanPostProcessor.java:358)org.springframework.beans.factory .annotation.AutowiredAnnotationBeanPostProcessor.postProcessMergedBeanDefinition(AutowiredAnnotationBeanPostProcessor.java:233)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyMergedBeanDefinitionPostProcessors(AbstractAutowireCapableBeanFactory.java:924)... 25更多引起 by:java.lang.NoSuchMethodError:org.springframework.core.annotation.AnnotationUtils.isInJavaLangAnnotationPackage(Ljava/lang/annotation/Annotation;)Z at org.springframework.core.annotation.AnnotatedElementUtils.doProcess(AnnotatedElementUtils.java:208)at org.springframework.core.annotation.AnnotatedElementUtils.process(AnnotatedElementUtils.java:162)... 32更多

pma*_*in8 12

当我通过@import导入未部署在服务器上的类时,我遇到了这个错误.不幸的是,堆栈并没有告诉你缺少哪个类,但你可以逐个删除它们并重新启动你的应用程序.

现在,如果项目实际编译,为什么不在服务器上部署该类?

编辑:当我通过Maven依赖使用类路径上的类时,我发现我遇到了问题.我还在Eclipse中检查了这个依赖项(项目).在这种情况下,Eclipse似乎将部署签出的项目而不是存储库中的构建.它不会考虑这个项目的外部依赖性.

解决方案:关闭Eclipse中的所有外部依赖项目,以确保实际部署Maven资源库中的版本.


Vin*_*dak 3

你可能会失踪

<context:component-scan base-package="org.example">
Run Code Online (Sandbox Code Playgroud)

在您的 applicationContext.xml 文件中

@ComponentScan("com.example") 
Run Code Online (Sandbox Code Playgroud)

如果您正在进行基于代码的配置,请使用注释。