Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring上下文:组件扫描强制转换异常_Spring_Spring Mvc_Applicationcontext - Fatal编程技术网

Spring上下文:组件扫描强制转换异常

Spring上下文:组件扫描强制转换异常,spring,spring-mvc,applicationcontext,Spring,Spring Mvc,Applicationcontext,我有一个奇怪的错误,我在网上搜索了很多。我不明白为什么我会犯这个错误。我在spring jira上找到了一些关于这个错误的解释。我在applicationContext.xml中有context:component scan,我在com.sow.webservices包中定义了5个包。但是,当我添加包含控制器类的控制器包时,我抛出 Error occured processing XML '[Ljava.lang.String; cannot be cast to java.lang.Strin

我有一个奇怪的错误,我在网上搜索了很多。我不明白为什么我会犯这个错误。我在spring jira上找到了一些关于这个错误的解释。我在
applicationContext.xml
中有
context:component scan
,我在
com.sow.webservices
包中定义了5个包。但是,当我添加包含控制器类的控制器包时,我抛出

Error occured processing XML '[Ljava.lang.String; cannot be cast to java.lang.String'. See Error Log for more details
这是组件扫描:

<context:component-scan base-package="com.sow.webservices.aop, 
                                          com.sow.webservices.exceptions,
                                          com.sow.webservices.models, 
                                          com.sow.webservices.services,
                                          com.sow.webservices.controller">

即使xml抛出这个异常,我也可以运行我的应用程序,但当我删除
com.sow.webservices.controller时,它停止显示有错误符号,但它给出了404错误。由于我在组件扫描方面遇到了麻烦,LocaleChangeInterceptor无法工作,我无法国际化我的应用程序

请检查您的控制器,如果其中一个控制器使用注释@ControllerAdvice,请尝试对其进行注释,奇怪的是错误消失了。奇怪

只是想一想,如果这是您拥有的5个包,并且没有过滤器,那么为什么不将基本包保留为“com.sow.webservices”,而不是全部提及呢?您使用的是哪个版本的Spring?您提到了Spring JIRA,是的,确实存在一个报告并修复的问题()。你有没有试过用Spring版本来修复JIRA的问题?@Prasad,它还在开发中,我可能有另一个包,在“com.sow”下包含了一些东西,而不是“com.sow.webservices”。Andreestefan,是的,在我使用4.0.2之前,但是在阅读了这个问题之后,我转向了4.0.3W。你是对的。成功了。但是,这次我的应用程序异常无法被使用@ControllerAdvice的控制器捕获,其方法使用@ExceptionHandler annotation.nice。这修复了我的错误,只是略有不同:java.lang.String;与java.lang.StringOk不兼容,但我们需要@ControllerAdvice,您知道如何用等效的SpringXML配置替换它吗?
!ENTRY org.springframework.ide.eclipse.beans.core 1 0 2014-04-11 18:07:39.996
!MESSAGE Error occured processing '/SOW_WS/src/main/webapp/WEB-INF/applicationContext.xml'
!STACK 0
java.lang.ClassCastException: [Ljava.lang.String; cannot be cast to java.lang.String
    at org.springframework.context.annotation.AnnotationBeanNameGenerator.determineBeanNameFromAnnotation(AnnotationBeanNameGenerator.java:92)
    at org.springframework.context.annotation.AnnotationBeanNameGenerator.generateBeanName(AnnotationBeanNameGenerator.java:70)
    at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.doScan(ClassPathBeanDefinitionScanner.java:247)
    at org.springframework.context.annotation.ComponentScanBeanDefinitionParser.parse(ComponentScanBeanDefinitionParser.java:85)
    at org.springframework.beans.factory.xml.NamespaceHandlerSupport.parse(NamespaceHandlerSupport.java:74)
    at org.springframework.ide.eclipse.beans.core.internal.model.namespaces.DelegatingNamespaceHandlerResolver$ElementTrackingNamespaceHandler.parse(DelegatingNamespaceHandlerResolver.java:177)
    at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1427)
    at org.springframework.ide.eclipse.beans.core.internal.model.BeansConfig$ErrorSuppressingBeanDefinitionParserDelegate.parseCustomElement(BeansConfig.java:1400)
    at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1417)
    at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:187)
    at org.springframework.ide.eclipse.beans.core.internal.model.BeansConfig$ToolingFriendlyBeanDefinitionDocumentReader.doRegisterBeanDefinitions(BeansConfig.java:1330)
    at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:110)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:494)
    at org.springframework.ide.eclipse.beans.core.internal.model.BeansConfig$2.registerBeanDefinitions(BeansConfig.java:402)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:391)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:335)
    at org.springframework.ide.eclipse.beans.core.internal.model.BeansConfig$2.loadBeanDefinitions(BeansConfig.java:388)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:303)
    at org.springframework.ide.eclipse.beans.core.internal.model.BeansConfig$3.call(BeansConfig.java:445)
    at org.springframework.ide.eclipse.beans.core.internal.model.BeansConfig$3.call(BeansConfig.java:1)
    at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
    at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)