Hi all!
I'm in the process of upgrading from JBossAS 7.1.2 (built from source) to WildFly 8.1. My project uses a few cluster-ha-singleton services that has previously been "bootstrapped" from an ejb:
@Singleton
@Startup
public class SingletonServiceStartup {
@EJB
private MyHelper fromSameModule;
@EJB
private MySecondHelper fromOtherModule;
@PostConstruct
public void installServices() {
...
SingletonService<UUID> singleton = new SingletonService<UUID>(service, serviceName);
...
}
}
This code fails in WildFly and the cluster-ha-singleton quick start shows that I need to implement a ServiceActivator instead:
public class SingletonServiceActivator implements ServiceActivator {
public void activate(ServiceActivatorContext context) {
MyHelper fromOtherModule = InitialContext.doLookup("java:global/my-ear-file/other-module/MyHelper"); // This works fine
MySecondHelper fromSameModule = InitialContext.doLookup("java:global/my-ear-file/my-module/MySecondHelper"); // Throws NameNotFoundException
}
}
My app is packaged with 2 jar files within an ear file like this:
my-ear-file.ear |-- other-module.jar |-- my-module.jar |-- SingletonServiceActivator.class |-- META-INF |-- services |-- org.jboss.msc.service.ServiceActivator
So basically I can perform JNDI lookups in SingletonServiceActivator of EJB's in other-module.jar, but not from my-module.jar.
Bug or feature? Any suggestions of a workaround?
Regards
Trond