ребята.У меня есть проект 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.Я понятия не имею, почему это происходит, кстати, я думал, что это будет довольно просто для Шима.
В любом случае ..., какие-нибудь другие предложения, ребята?