2015-08-06 1 views
1

У меня есть проект Java EE. В модуле EJB У меня есть этот классStripes Injection Enricher: не удается подключиться к модулю ejb

@LocalBean 
@Stateless 
public class TestBean implements Test{ 

@PersistenceContext(unitName = "-----") 
EntityManager em = null; 

public Manager findByName(String name) { 
    Manager manager = em.createNamedQuery("Manager.findByName", Manager.class). 
      setParameter("name", name).getSingleResult(); 

    return manager; 
} 

}

В веб-модуле У меня есть этот класс:

public abstract class BaseActionBean implements ActionBean { 

private MyActionBeanContext context; 

@EJB 
public TestBean wrapper; 


public MyActionBeanContext getContext() { 
    return context; 
} 

public void setContext(ActionBeanContext context) { 
    this.context = (MyActionBeanContext) context; 
} 
} 

В файле web.xml я это:

<init-param> 
     <param-name>Extension.Packages</param-name> 
     <param-value> 
      com.samaxes.stripes.inject 
     </param-value> 
    </init-param> 

Но когда я хочу использовать эту оболочку, я получил «null». стили версии 1.5.7 stripes-injection-enricher-1.0.3 (эти библиотеки добавлены в веб-модуль) Как я могу вставлять в свой модуль EJB? пожалуйста, помогите

+0

Injection поддерживается только в определенных классах ЭЭ, которые создаются в контейнере. Каков конкретный класс BaseActionBean и как создается этот объект? Это должен быть сервлет, управляемый bean-компонент, CDI-компонент, другой EJB и т. Д., А не тот экземпляр, который вы создали напрямую. –

+0

@bkail Что делать, если BaseActionBean расширит HttpServlet, он будет работать? –

+0

@samaxes вы можете мне помочь, пожалуйста, –

ответ

0

Я включил полосы банку в модуле EJB, а затем написал mappedName к классу EJB

@EJB(mappedName = "java:global/project-name/project-name-ejb/TestBean") 
public TestBean testBean; 

Сейчас он работает

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