Внедрить EJB в шовный компонент - PullRequest
1 голос
/ 02 апреля 2011

ребята.У меня есть проект Seam, работающий на Tomcat 6.0.20 (webapp.war), и проект EJB, работающий на JBoss 4.2.3 (ejbapp.ear).

Я могу получить доступ к своим EJB в моих компонентах Seam с помощью поиска JNDI[initialContext.lookup (...)].Вместо этого я хотел бы, чтобы они вводились в мои компоненты Seam.

Мои компоненты Seam НЕ являются EJB, поэтому я не могу использовать аннотацию @EJB.Я хотел бы иметь что-то подобное в моем приложении Tomcat (Web).

@Name("customerAction")
public class CustomerAction {

    @In // even with (autoCreate=true) or the EJB name if necessary
    private CustomerEJB customerEJB;

    ...
}

И это в приложении JBoss (EJB).

@Stateless(name="customerEJB")
public class CustomerEJBImpl implements CustomerEJB {
    ...
}

@Remote
public interface CustomerEJB {
    ...
}

В моем компоненте .xmlУ меня указан jndiPattern = ejbapp / @ jndiPattern / remote, точно такой же, какой я сейчас использую для поиска EJB (например, ejbapp / CustomerEJB / remote).

Возможно, мне что-то не хватает в моей конфигурации, чтобы эта работа работала,PS: я бы не хотел аннотировать мои EJB-компоненты как компоненты @Name (Seam).

Есть предложения?Заранее спасибо.


Спасибо за ваш ответ, но он не сработал.

Когда я объявил EJB в файле component.xml, он вставил объект в мой Action (Шовный компонент), но как POJO.Я имею в виду, что EntityManager и другие EJB-инъекции, которые у меня были в внедренном объекте, не работали.

Я также попытался определить EJB как компонент Seam, но, как только они находятся в веб-проекте внутри файла JAR, он не загружался автоматически, и, пробуя сценарий выше, я получил ту же ошибку.

Просто к сведению, я также объявил перехватчик Seam в файле ejb-jar.xml.Я понятия не имею, почему это происходит, кстати, я думал, что это будет довольно просто для Шима.

В любом случае ..., какие-нибудь другие предложения, ребята?

1 Ответ

0 голосов
/ 02 апреля 2011

Определите ваш EJB как компоненты Seam в ваших компонентах. Xml

...