Spring MVC的项目不能够发布和运行...消息:无法内省注解

问题描述 投票:9回答:4

我有一个Spring MVC应用程序(4.1.1发行版本)。当我尝试发布和服务器我得到以下提到的错误上运行。

附加信息

  • 使用Spring工具套件3.6.1
  • Spring版本4.1.1-RELEASE
  • 这是一个Maven项目
  • 它没有任何编译错误
  • 当我做MVN干净的安装,构建成功

org.springframework.beans.factory.BeanCreationException:错误创建名称为豆“的HomeController”在文件中定义[/home/abc/Tools/sts-bundle/pivotal-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:无法内省注释:公共java.lang.String中com.abc.project.HomeController.hello()在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyMergedBeanDefinitionPostProcessors(AbstractAutowireCapableBeanFactory.java: 929)在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513)在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476)在org.springframework.beans .factory.support.AbstractBeanFactory $ 1.getObject在org.springframework.beans.factory.support.AbstractBeanFactory(AbstractBeanFactory.java:302)在org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:229)。 doGetBean(AbstractBeanFactory.java:298)在org.springframework.beans.factory.support.AbstractBeanFactory.getBean( AbstractBeanFactory.java:193)在org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:725)在org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918)在org.springframework .context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:469)在org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:403)在org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java :306)在org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:106)在org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4760)在org.apache.catalina.core。 StandardContext.startInternal(StandardContext.java:5184)在org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)在org.apache.catalina.core .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)在org.apache.catalina.startup.HostConfig $ DeployDescriptor.run(HostConfig.java:1686)在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中$ Worker.run(ThreadPoolExecutor.java:615)在java.lang.Thread.run(Thread.java:745)产生的原因:java.lang.IllegalStateException:未能内省注释:公共java.lang.String中com.abc。 project.HomeController.hello()在org.springframework.core.annotation.AnnotatedElementUtils.process(AnnotatedElementUtils.java:166)在org.springframework.core.annotation.Annotate dElementUtils.getAnnotationAttributes(AnnotatedElementUtils.java:91)处org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.findAutowiredAnnotation org.springframework.core.annotation.AnnotatedElementUtils.getAnnotationAttributes(AnnotatedElementUtils.java:85)(AutowiredAnnotationBeanPostProcessor.java:416)在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多所致由:java.lang.NoSuchMethodError:org.springframework.core.annotation.AnnotationUtils.isInJavaLangAnnotationPackage(Ljava /郎/注解/注释;)z在org.springframework.core.annotation.AnnotatedElementUtils.doProcess(AnnotatedElementUtils.java:208)在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-开发人员3.0.0.RELEASE /基实例/ wtpwebapps /项目名称/ WEB-INF /班/ COM / ABC /项目/ HomeController.class]:后处理失败的bean类型[类com.abc .project.HomeController]失败;嵌套异常是java.lang.IllegalStateException:无法内省注释:公共java.lang.String中com.abc.project.HomeController.hello()在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyMergedBeanDefinitionPostProcessors(AbstractAutowireCapableBeanFactory.java: 929)在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513)在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476)在org.springframework.beans .factory.support.AbstractBeanFactory $ 1.getObject在org.springframework.beans.factory.support.AbstractBeanFactory(AbstractBeanFactory.java:302)在org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:229)。 doGetBean(AbstractBeanFactory.java:298)在org.springframework.beans.factory.support.AbstractBeanFactory.getBean( AbstractBeanFactory.java:193)在org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:725)在org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918)在org.springframework .context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:469)在org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:403)在org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java :306)在org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:106)在org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4760)在org.apache.catalina.core。 StandardContext.startInternal(StandardContext.java:5184)在org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)在org.apache.catalina.core .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)在org.apache.catalina.startup.HostConfig $ DeployDescriptor.run(HostConfig.java:1686)在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中$ Worker.run(ThreadPoolExecutor.java:615)在java.lang.Thread.run(Thread.java:745)产生的原因:java.lang.IllegalStateException:未能内省注释:公共java.lang.String中com.abc。 project.HomeController.hello()在org.springframework.core.annotation.AnnotatedElementUtils.process(AnnotatedElementUtils.java:166)在org.springframework.core.annotation.Annotate dElementUtils.getAnnotationAttributes(AnnotatedElementUtils.java:91)处org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.findAutowiredAnnotation org.springframework.core.annotation.AnnotatedElementUtils.getAnnotationAttributes(AnnotatedElementUtils.java:85)(AutowiredAnnotationBeanPostProcessor.java:416)在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多所致由:java.lang.NoSuchMethodError:org.springframework.core.annotation.AnnotationUtils.isInJavaLangAnnotationPackage(Ljava /郎/注解/注释;)z在org.springframework.core.annotation.AnnotatedElementUtils.doProcess(AnnotatedElementUtils.java:208)在org.springframework.core.annotation.AnnotatedElementUtils.process(AnnotatedElementUtils.java:162)... 32更

spring spring-mvc
4个回答
12
投票

当我通过@import,这不是部署在服务器上的一类进口我有这个错误。不幸的是,该堆栈不告诉你缺什么课,但你可以通过一个消除他们一个数字出来,并重新启动应用程序。

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

编辑:我发现我的时候进口是使用一类是通过一个Maven依赖classpath中出现了问题。我也有这种依赖关系(项目)在Eclipse中签出。在这种情况下,似乎Eclipse将部署该项目签出,而不是从存储库构建的。它不会看这个项目的对外依存度。

解决方案:关闭所有对外依存度项目在Eclipse中,以确保您实际部署从Maven仓库的版本。


2
投票

你可能会丢失

<context:component-scan base-package="org.example">

在你的applicationContext.xml文件或

@ComponentScan("com.example") 

注释如果你正在做基于代码的配置。


2
投票

我有春天库的旧版本在我的WEB-INF / lib目录下。我删除了lib文件夹中的一切,并试图构建和发布。有效。

谢谢。


0
投票

从堆栈跟踪来看你混合不同版本的春天。 java.lang.NoSuchMethodError: org.springframework.core.annotation.AnnotationUtils.isInJavaLangAnnotationPackage(Ljava/lang/annotation/Annotation;)是该指示器。

检查你的依赖,并确保你不冲突的版本拉。

一般的经验法则,不要混合使用不同版本的框架的罐子(在这种情况下春天,但同样适用于例如休眠)。

© www.soinside.com 2019 - 2024. All rights reserved.