2012-12-21 13 views
7

EJB Beanは、ビジネスインターフェイス(@Local、@Remote)またはノーインターフェイスビュー(@LocalBean)を除く複数のユーザー定義インターフェイスを実装できますか?EJB Beanは複数のインタフェースを実装できますか?

たとえば、注釈のない2つのインターフェイスUserInterface1,UserInterface2を定義します。

を実装するために、これは合法的です:

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

は、それから私は別の混乱を持っている:

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

が、これは法的または違法である、私はGlassFishのサポートにこのような状況を発見しました。

答えて

6

この例は不正ですが、かなりの実装(アプリケーションサーバー)で受け入れられています。

David BlevinsはこれまでにEJBメーリングリストでa thread aboutを開始しました。

EJB 3.2では、このトピックのルールがより明確になります。 What's new in EJB 3.2 ? - Java EE 7 chugging along!を参照してください(の部分を参照してください。のすべてのローカル/リモートビューを定義するルール)

+0

ただ1つのインターフェイス(まだアノテーションなし)を実装すればどうしますか?そのインタフェースはユーザ定義であるか、またはいくつかのJavaパッケージ(例えばjava.lang。)からのインタフェースはこの実装が違法ですか? – user1684651

+0

1つの注釈を使用しないと、1つのインタフェースが合法であるように見えます。 http://docs.oracle.com/javaee/6/api/javax/ejb/Local.html –

+2

を参照してください。回答は良いですが、トピック・質問には回答しませんが、回答は「はい、 EJBは複数のインタフェースを実装できますが、その場合は '@ Local'またはejb-jar.xmlを使用して、どのインタフェースがビジネスインタフェースであるかを明示的に指定する必要があります。 –

関連する問題