2012-12-21 31 views
7

Một hạt EJB có thể triển khai nhiều giao diện do người dùng xác định, ngoại trừ giao diện nghiệp vụ (@Local, @Remote) hoặc chế độ xem Giao diện không (@LocalBean)?Một hạt EJB có thể thực hiện nhiều giao diện không?

Ví dụ: xác định hai giao diện UserInterface1, UserInterface2, không có chú thích.

là hợp pháp này để thực hiện:

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

Sau đó, tôi có một sự nhầm lẫn:

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

là hợp pháp hoặc bất hợp pháp này, tôi thấy rằng hỗ trợ glassfish tình trạng này.

Trả lời

6

Ví dụ đã cho là bất hợp pháp, nhưng vẫn được chấp nhận bởi một số triển khai thực hiện (máy chủ ứng dụng).

David Blevins đã bắt đầu a thread about điều này trên danh sách gửi thư EJB cách đây không lâu.

EJB 3.2 sẽ làm cho các quy tắc rõ ràng hơn cho chủ đề này. Xem What's new in EJB 3.2 ? - Java EE 7 chugging along! (tìm phần Đơn giản hóa các quy tắc để xác định tất cả các chế độ xem cục bộ/từ xa của bean)

+0

nếu tôi chỉ triển khai một giao diện (vẫn không có chú thích)? Giao diện đó có thể được người dùng định nghĩa hoặc giao diện từ một số gói java (ví dụ java.lang.) Là việc triển khai này có hợp pháp không? Giao diện – user1684651

+0

1 có vẻ hợp pháp mà không sử dụng bất kỳ chú thích nào. Xem http://docs.oracle.com/javaee/6/api/javax/ejb/Local.html –

+2

Câu trả lời là tốt, mặc dù nó không trả lời được câu hỏi chủ đề, mà tôi sẽ trả lời, "có, một EJB có thể thực hiện nhiều giao diện, nhưng trong trường hợp đó, bạn phải chỉ định rõ ràng giao diện nào là giao diện nghiệp vụ sử dụng '@ Local' hoặc ejb-jar.xml". –

Các vấn đề liên quan