Посмотрите на следующий код:
@Local
public interface MyService {
void printMessage();
}
@Stateless
public class MyServiceImpl implements MyService {
@Override
public void printMessage() {
System.out.println("Hello from MyService.");
}
}
@Stateless
@Named
public class Application {
@EJB
public MyService sampleService;
private static Application getApplication() throws NamingException {
Properties properties = new Properties();
properties.setProperty(EJBContainer.APP_NAME, "admin");
EJBContainer.createEJBContainer(properties); //.getContext();
Context context = new InitialContext();
Application application = (Application) context.lookup("java:global/admin/classes/Application");
return application;
}
public static void main(String[] args) throws NamingException {
Application application = getApplication();
application.start(args);
}
private void start(String[] args) {
sampleService.printMessage();
}
}
Я ожидал, что экземпляр экземпляра simpletService будет доступен при запуске (), но он равен нулю. Все классы являются частью одного проекта (размещены в отдельных файлах). Где я ошибся? Спасибо за совет.