Как внедрить компонент Spring в EJB3?

Я пытаюсь получить доступ к компоненту Spring в EJB3, но, похоже, он не вводится, потому что я получаю исключение NullPointerException.

Думаю, я не понимаю роль beanRefContext.xml и то, как он используется очень хорошо.

Следующие EJB и XML находятся в сервисном JAR, который находится в WEB-INF / lib файла WAR. Компонент Spring (DAO) находится в отдельном JAR-файле также в WEB-INF / lib.

EJB:

@Stateless
@Interceptors(SpringBeanAutowiringInterceptor.class)
public class TimetrackingServiceBean implements TimetrackingService {

    @Autowired
    private UserDao userDao;

    @Override
    public List<User> getAllUsers() {
        return this.userDao.findAll(); // <-- NPE
    }
}

beanRefContext.xml:

<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd">

        <bean name="serviceContext" class="org.springframework.context.support.ClassPathXmlApplicationContext"></bean>

</beans>

services-context.xml:

<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-3.2.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd">

    <context:annotation-config />

</beans>

ИЗМЕНИТЬ

Я прочитал сообщение «Внедрить компоненты Spring в EJB3» и теперь добавил контекст - param в web.xml, но проблема остается.

web.xml:

...
<context-param>
  <param-name>parentContextKey</param-name>
  <param-value>serviceContext</param-value>
 </context-param>
...

Очевидно, мне нужна дополнительная помощь и объяснения.


person Koohoolinn    schedule 25.06.2013    source источник
comment
возможный дубликат Inject Spring beans в EJB3   -  person Luiggi Mendoza    schedule 25.06.2013
comment
Я прочитал этот пост, и он мне помог (я думаю), но у меня все еще тот же NPE.   -  person Koohoolinn    schedule 26.06.2013


Ответы (1)


Возможно, вы уже заметили, но если вы пропустили, beanRefContext.xml необходимо передать свой services-context.xml как аргумент, однако он отсутствует в вашем коде

person earthling    schedule 04.04.2014