[jboss-user] [EJB3] - Lookup and invoke a _local_ EJB via a remote EJB by a remote client
Matthias M.
do-not-reply at jboss.com
Tue Jun 19 10:40:38 EDT 2012
Matthias M. [https://community.jboss.org/people/virtuellesnugat] created the discussion
"Lookup and invoke a _local_ EJB via a remote EJB by a remote client"
To view the discussion, visit: https://community.jboss.org/message/742757#742757
--------------------------------------------------------------
Hi there,
I'm new to the jboss AS and the EJB. The book I've read doesn't help me, since the new JNDI naming changes so much.
But during the last days I've managed to setup the server, deploy some remote stateful and stateless session beans. But now I'm trying something different:
* Local stateless session bean named "TimeBean", with it's interface "ITimeLocal"
* Remote stateless session bean named "CallerBean", with it's interface "ICallerRemote"
* and a remote Client named "CallerClientBean"
*ITimeLocal*
package test.jboss.umweg.server.local;
import javax.ejb.Local;
@Local
public interface ITimeLocal {
public long getTime();
}
*TimeBean*
package test.jboss.umweg.server.local;
import java.util.Date;
import javax.ejb.Local;
import javax.ejb.Stateless;
@Stateless
@Local(ITimeLocal.class)
public class TimeBean implements ITimeLocal {
@Override
public long getTime() {
return new Date().getTime();
}
}
So that's just the local bean. It was deployed successfully and the JNDI Bindings where created.
The call from the CallerClientBean to the CallerBean works fine (I tested with "return 0").
But when I tried the real call it wouldn't work:
Extracted from *CallerBean*
@Override
public long askTime() {
// lookup and invoke Local Bean, return time
try {
Context context = getInitialContext();
ITimeLocal szb = (ITimeLocal) context.lookup(getJndiName());
long time = szb.getTime();
System.out.println("Time: " + time);
return time;
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return 0;
}
I build the *InitialContext* like this (+though I didn't set a "jboss-ejb-client.properties" on server side, *maybe that's a problem*+):
private InitialContext getInitialContext() throws NamingException {
Hashtable p = new Hashtable();
p.put(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming");
return new InitialContext(p);
}
And I tried two different *JNDI* names:
* the same I've been building the other ones:
ejb:/TimeBean//TimeBean!test.jboss.umweg.server.local.ITimeLocal
* and the global JNDI binding I got from the deploy:
java:global/TimeBean/TimeBean!test.jboss.umweg.server.local.ITimeLocal
But I guess my main-problem is, that I'm not aware of howto call a local bean. And I couldn't find anything really helpful. I didn't post the Exceptions (first runtime, the illegalState), but I bet my faults are obvious to most people here :)
Thanks!!
--------------------------------------------------------------
Reply to this message by going to Community
[https://community.jboss.org/message/742757#742757]
Start a new discussion in EJB3 at Community
[https://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2029]
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/jboss-user/attachments/20120619/32a1bf55/attachment.html
More information about the jboss-user
mailing list