2014-09-17 7 views
2

Я работаю над проектом портала. Когда я развертываю портлеты в WebSphere, я получаю NoSuchBeanDefintionException, и я также проверял пакет в component-scan, а также искал его, но я не нашел никакого решения. Все необходимые пакеты в context.xml каждого портлета.Нет определения этого компонента.

Пожалуйста, смотрите ниже для журналов

Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.myhealthone.common.model.Account com.hca.cpp.coreservice.UserServiceImpl.account; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.myhea.common.model.Account] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@ringframework.beans.factory.annotation.Autowired(required=true)} 
> at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcesva:514) 
> at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87) 
> at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor285) 
     ... 147 more 
> Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.myhealthone.common.model.Account] found for depy: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotatiowired(required=true)} 

я добавил все необходимые пакеты для компонентов сканирования.

+1

'com.myhea.common.model.Account' вы аннотировать этот класс с любым стереотипа, как' '' обслуживания или Resource' и т.д.? –

+0

Вы решили эту проблему? если да, то как вы его решили? – Xstian

ответ

1

От this link

Пружина 2.5 вводит дополнительные стереотипных аннотации: @Component, @Service и @Controller. @Component служит в качестве общего стереотипа для любого компонента, управляемого Spring; тогда как @Repository, @Service и @Controller служат специализациями @Component для более конкретных случаев использования (например, на уровнях персистентности, обслуживания и представления, соответственно). Это означает, что вы можете комментировать классы с помощью @Component, но вместо этого их аннотируя с помощью @Repository, @Service или @Controller, ваши классы более правильно подходит для обработки инструментами или связывания с аспектами. Например, эти аннотации стереотипов для составляют идеальные цели для pointcuts. Конечно, также возможно, что @Repository, @Service, и @Controller могут нести дополнительную семантику в будущих выпусках Spring Framework. Таким образом, если вы принимаете решение об использовании @Component или @Service для вашего уровня обслуживания, @Service, безусловно, является лучшим выбором для . Аналогично, как указано выше, @Repository уже поддерживается как маркер автоматического перевода исключений в вашем уровне сохранения .

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xmlns:context="http://www.springframework.org/schema/context" 
     xsi:schemaLocation="http://www.springframework.org/schema/beans 
      http://www.springframework.org/schema/beans/spring-beans.xsd 
      http://www.springframework.org/schema/context 
      http://www.springframework.org/schema/context/spring-context.xsd"> 

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

</beans> 

@Service 
public class SimpleMovieLister { 

    private MovieFinder movieFinder; 

    @Autowired 
    public SimpleMovieLister(MovieFinder movieFinder) { 
     this.movieFinder = movieFinder; 
    } 
} 

@Repository 
public class JpaMovieFinder implements MovieFinder { 
    // implementation elided for clarity 
} 
Смежные вопросы