Я знаю, что можно использовать ServiceTracker внедрить службы OSGi в EJB.
Однако как мне использовать конфигурацию OSGi Blueprint XML для внедрения служб в стандартные EJB, чтобы службы были доступны, когда EJB используются в другом месте? Или это действительно невозможно, поскольку EJB работают на своем собственном уровне?
Я безуспешно пытался сделать это с помощью Aries Blueprint, а также Gemini Blueprint с JBoss AS7.
Например, боб:
import javax.annotation.PostConstruct;
import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import org.osgi.framework.BundleContext;
@Stateless
@LocalBean
public class SimpleStatelessSessionBean {
InformationService service; // how'd I go about to get this populated?
@PostConstruct
public void init() {
}
public String getMessage() {
if (service == null)
throw new IllegalStateException("Service not available");
return "EJB:" + service.getMessage();
}
}