Исключение NullPointer для управляемого свойства (службы)

Я сталкиваюсь с исключением нулевого указателя на моем приложении, я аннотирую Dao с @Repositoryпомощью, servive by@Service, контроллер @Controllerи служба внутри него с@ManagedProperty, я подозреваю, что мой контекст приложения не хорошо настроен, поэтому здесь есть:

 <?xml version="1.0" encoding="UTF-8"?>

<beans 
     
    
    xml_jpa="http://www.springframework.org/schema/data/jpa"
     
    xsi_schemaLocation="
                http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
                http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd
                http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd">
    <!-- Enable Spring Annotation Configuration -->

    <context:annotation-config/> 
    <!-- Scan for all of Spring components such as Spring Service -->
    <context:component-scan base-package="com.domain.nameOfapp.*" />

    <!-- Necessary to get the entity manager injected into the factory bean -->
    <bean
        class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />

    <!-- Define Hibernate JPA Vendor Adapter -->
    <bean id="jpaVendorAdapter"
        class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
        <property name="databasePlatform" value="org.hibernate.dialect.Oracle10gDialect" />
    </bean>

    <!-- Entity Manager Factory -->
    <bean id="entityManagerFactory"
        class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
        <property name="persistenceUnitName" value="jpa-persistence" />
        <property name="jpaVendorAdapter" ref="jpaVendorAdapter" />
        <property name="packagesToScan">
            <list>
                <value>com.domain.nameOfapp.*</value>
            </list>
        </property>
    </bean>

    <!-- Transaction Manager -->
    <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
        <property name="entityManagerFactory" ref="entityManagerFactory" />
    </bean>

    <!-- Detect @Transactional -->
    <tx:annotation-driven transaction-manager="transactionManager"  />

</beans>

Любая помощь была бы великолепна! спасибо

1 ответ

  1. Сканирование компонентов должно быть таким, как показано ниже,

    <context:component-scan base-package="com.domain.nameOfapp" />
    

    Это будет сканировать все классы в этом пакете, включая все субпакеты.

    Кроме того, используя@ManagedProperty, вы пытаетесь autowire spring service bean? Я считаю, что вы должны использовать @Autowired.