2014-04-11 6 views
3

У меня странная ошибка, которую я искал в alot в Интернете. Я не мог понять, почему я получаю эту ошибку. Я нашел несколько объяснений об этой ошибке весной джиры. У меня есть context:component-scan в applicationContext.xml и я определяю 5 пакетов в пакете com.sow.webservices. Однако, когда я добавить пакет контроллера включая классы контроллеров, я бросаюВесенний контекст: исключение исключения компонентного сканирования

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"> 

Я хотел бы показать вам весь след исключения. Цените свою помощь.

!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) 

Даже если XML выдает это исключение, я могу запустить мое приложение, но когда я удалить com.sow.webservices.controller он прекращает показ есть ошибка знак, но он дает ошибку 404. Поскольку у меня проблемы с компонентным сканированием, LocaleChangeInterceptor не работает, и я не могу интернационализировать свое приложение.

+0

Просто подумайте, если это 5 пакетов, которые у вас есть, и нет фильтров, почему бы вам не оставить базовый пакет как «com.sow.webservices», а не упомянуть все это? – Prasad

+0

Какую версию весны вы используете? Вы упомянули Spring JIRA и, да, действительно, проблема была отмечена и исправлена ​​(https://jira.spring.io/browse/SPR-11221). Вы пробовали с версиями Spring, которые фиксировали эту проблему JIRA? –

+0

@Prasad, он все еще находится в разработке, у меня может быть пакет anohter, содержащий sometrhing под «com.sow» вместо «com.sow.webservices». AndreiStefan, да, прежде чем я использовал 4.0.2, но после прочтения этой проблемы я перешел на 4.0.3 – Emilla

ответ

5

проверьте свои контроллеры, если один из них использует аннотацию @ControllerAdvice, попробуйте прокомментировать это, и странная вещь - это ошибка далеко. FREAKY !!!!

+0

wouw. Ты прав. это сработало. Однако на этот раз исключение моего приложения не может быть захвачено контроллером, который использует @ ControllerAdvice, а его методы используют аннотацию @ ExceptionHandler. – Emilla

+0

приятно. это фиксировало мою ошибку, которая была немного иной: java.lang.String; несовместимо с java.lang.String – matt1616

+1

Хорошо, но нам нужно @ControllerAdvice, знаете ли вы, как заменить его эквивалентной конфигурацией Spring XML? –

Смежные вопросы