Предположим, что мы (без гражданства, например) А и B. 2 EJB вEJB инъекции и EJB бассейн
@Stateless
public class A {
@EJB
protected B binstance;
}
Так после того как мы использовали наш боб в сервлет, он должен быть возвращен обратно в бассейн, и вопрос есть ли контейнер EJB «разыменовать» экземпляр B из A, то есть при следующем вызове мы могли бы получить другой объект B внутри одного экземпляра A? То же самое относится и к JAX-RS, когда мы создаем службу REST и добавляем туда некоторые другие компоненты? Создает ли JAX-RS bean-элемент как сервлет или как обычный экземпляр EJB в этом смысле (я имею в виду, что сервлеты все еще содержат ссылки на экземпляры beans)?
Возможный дубликат [как состояние переменных экземпляра компонента без состояния сохраняется для следующего вызова в EJB?] (Http://stackoverflow.com/questions/26309050/how-is-state-of-instance-variables- a-a-stateless-bean-saved-for-next-invoca) – kolossus
Ресурсы JAX-RS нельзя объединить как таковые. Поскольку Java EE 7 (и EJB 3.2), если вы объединяете JAX-RS с EJB (т. Е. Аннотируете ресурс JAX-RS с помощью @Stateless), JAX-RS будет объединен. Все его зависимости будут подключаться ad hoc, когда они загружаются из пула (аналогично для всех EJB, вложенных в апатию). –
Вопрос в том, что происходит с B до того, как A будет помещен в пул? Является ли B разыменованным из A, и оба A и B объединены независимо, или только A возвращается в пул (поскольку он имеет ссылку на B, так как же тогда B объединился?) – user3070377