Вопрос по interface, java, javabeans, ejb-3.1 – Может ли EJB-компонент реализовывать несколько интерфейсов?

7

Может ли EJB-компонент реализовывать несколько пользовательских интерфейсов, кроме бизнес-интерфейсов (@Local, @Remote) или представления без интерфейса (@LocalBean)?

Например, определить два интерфейса,UserInterface1UserInterface2, без аннотации.

Это законно для реализации:

@Stateless
public class MyBean implements UserInterface1, UserInterface2 { ...

Тогда у меня другая путаница:

@Stateless
public class MyBean implements Runnable { ...
//inside I won't try to manage thread
}

Является ли это законным или незаконным, я обнаружил, что Glassfish поддерживают эту ситуацию.

Ваш Ответ

1   ответ
6

Данный пример недопустим, но, тем не менее, принят довольно многими реализациями (серверами приложений).

Дэвид Блевинс началнить о это в списке рассылки EJB некоторое время назад.

EJB 3.2 сделает правила более понятными для этой темы. УвидетьКакие'Что нового в EJB 3.2? - Java EE 7 задыхается! (ищите разделУпрощенные правила для определения всех локальных / удаленных представлений bean-компонента)

@bkail название темы говорит "несколько интерфейсов ", но пост открывается запросом нескольких интерфейсов,кроме бизнес интерфейсов, К сожалению, ситуация со смешиванием (нескольких) бизнес-интерфейсов и (нескольких) обычных интерфейсов не так ясна. Arjan Tijms
1 интерфейс кажется законным без использования каких-либо аннотаций. Увидетьdocs.oracle.com/javaee/6/api/javax/ejb/Local.html Arjan Tijms
Даже учитывая ДавидаS сообщение, семантика кажется вполне понятным, когда (не пусто)@Local указан в классе бобов. В любом случае, если ФП удовлетворен, этоВсе, что имеет значение :-). Brett Kail
что если я просто реализую один интерфейс (все еще без каких-либо комментариев)? Этот интерфейс может быть определен пользователем или интерфейс из некоторых пакетов Java (например, java.lang). Является ли эта реализация незаконной? user1684651
Ответ хороший, хотя это не такне отвечу на тему вопроса, на который я бы ответил "да, EJB может реализовывать несколько интерфейсов, но в этом случае вы должны явно указать, какие интерфейсы являются бизнес-интерфейсами, использующими@Local или ejb-jar.xml ". Brett Kail

Похожие вопросы