2
根據我的參考資料,可以在部署bean的同一JVM(客戶端&服務器在同一JVM上運行)下訪問@Local會話bean。獨立EJB客戶端本地無狀態會話bean查找
我已經實現了一個簡單的無狀態本地會話bean並部署在我的GlassFish服務器中(也在JBoss服務器中嘗試過)。
而我的獨立客戶端查找會話bean,但本地會話無法訪問。我確實嘗試了可以訪問的@Remote。
因爲這兩個服務器和客戶端運行在相同/單個JVM(在我的機器上)。
是否可以從獨立客戶端應用程序訪問本地會話bean?有沒有具體的訪問方式?
我的代碼是:
Statless本地會話bean
@Stateless
public class TicketBookingImpl implements TicketBookingLocal {
public String doBooking(String name) {
return "Ticket Booked for " + name;
}
}
查找代碼
public static void main(String[] args) {
try {
Properties props = new Properties();
props.setProperty("java.naming.factory.initial", "com.sun.enterprise.naming.SerialInitContextFactory");
props.setProperty("java.naming.factory.url.pkgs", "com.sun.enterprise.naming");
props.setProperty("java.naming.factory.state", "com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl");
props.setProperty("org.omg.CORBA.ORBInitialHost", "localhost");
props.setProperty("org.omg.CORBA.ORBInitialPort", "3700");
final Context context = new InitialContext(props);
System.out.println("Doing lookup");
TicketBooking ticketBooking = (TicketBooking) context.lookup("java:global/ejb-work-1/TicketBookingImpl");