I'm using a remote bean from a servlet to make a remote call. The code snippet below works. But I'm wondering is it possible to inject this bean without needing to do the remote JNDI lookup.
When using JMS I setup a RemoteJMSProvider and can inject both the connection factory and destination queue from a servlet (I'm using the web 2.5 spec).
Is something similar possible with EJB's? Or am I stuck with the JNDI lookup code. Maybe some kind of mbean provider where I can specify the remote machine IP?
Cheers,
Ross
P.S. I've commented out the @EJB annotation as it does nothing.
//@EJB
private MyTestBeanRemote remoteBean;
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
try {
Properties properties = new Properties();
properties.put(Context.INITIAL_CONTEXT_FACTORY,
"org.jnp.interfaces.NamingContextFactory");
properties.put(Context.URL_PKG_PREFIXES,
"org.jboss.naming:org.jnp.interfaces");
properties.put(Context.PROVIDER_URL, "jnp://172.16.8.52:1099");
Context ctx = new InitialContext(props);
remoteBean = (MyTestBeanRemote) ctx.lookup("TestEAR/MyTestBeanRemote/remote");
} catch (Exception ex) {
System.out.println("Could not create bean. "+
ex.getMessage());
}
if (remoteBean != null) remoteBean.doSomething();
}
Similar discussion http://www.jboss.org/index.html?module=bb&op=viewtopic&t=147469