Spring SessionFactory имеет значение null при переносе в JSF2 CDI - PullRequest
0 голосов
/ 17 октября 2019

Мы недавно перенесли наше приложение из Spring в JSF2. Теперь мы хотим заменить ManagedBeans компонентами CDI. SessionFactory, которая работала нормально с JSF2, становится пустой после изменения его на CDI.

<bean id="dsBSA" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="net.sourceforge.jtds.jdbc.Driver" />
    <property name="url" value="*******" />
    <property name="username" value="********" />
    <property name="password" value="*******" />
</bean>

<bean id="sfBSA" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
    <property name="dataSource" ref="dsBSA" />
    <property name="packagesToScan" value="com.nbs.bma.model" /><!-- where to find the ORM classes -
</bean>

<!-- Transaction Manager (BMA) -->
<tx:annotation-driven transaction-manager="txnManagerBSA" />
<bean id="txnManagerBSA" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
    <property name="sessionFactory" ref="sfBSA" />
</bean>

<bean id="userDao" class="com.nbs.bma.dao.UserDaoImpl">
    <property name="sessionFactory" ref="sfBSA" />
</bean>

//In DAO class
@Transactional
public class UserDaoImpl implements UserDao, Serializable {
private static final long serialVersionUID = -1890813081994721050L;

private SessionFactory sessionFactory;

public void setSessionFactory(SessionFactory sessionFactory) {
    this.sessionFactory = sessionFactory;
}

@SuppressWarnings("unchecked")
public List<User> getUserList() {
    Query query = sessionFactory.getCurrentSession().createQuery("FROM User");
    return query.list();
}
}

sessionFactory имеет значение null. Отсюда и бросает NPE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...