Rohit Elayathu
Rohit Elayathu

Reputation: 639

How to call EJB from Standalone java program in diffrent JVM

I have developed EJB using NETbeans IDE having glassfish server. I can call it from standalone java, only if this java project is developed under NETbeans and run under same JRE. But I need to find out how to run it in different jre's. I could not find much help on this one. Any suggestions? (or related links would do) Thanks,

Upvotes: 2

Views: 9695

Answers (2)

NiranjanBhat
NiranjanBhat

Reputation: 1832

STEP 1:

Context context = new InitialContext(): 
  1. The initial context is a reference to the JNDI lookup service.
  2. It is like the entry into the JNDI virtual directory tree.

STEP 2:

Object o = context.lookup("mejb"): 
  1. Here in the lookup we need to give the name of the bean whatever that is deployed in the server, to get a reference to the home interface of that bean.
  2. We then get the object of type java.lang.Object we need to cast this object to the Home interface of whichever bean we did a lookup on.

STEP 3:

Home home = (Home) PortableRemoteObject.narrow(o,Home.class):
  1. We actually need to cast the object to the type that we think it is type of. However, since this is RMI over IIOP we need to use the PortableRemoteObject.narrow method this it seems filters the object type to the actual object type and checks for errors.

Upvotes: 1

Mark Bramnik
Mark Bramnik

Reputation: 42491

In order to call EJB from remote JVM, you should

  • Use @Remote annotation on you EJB

  • Supply a jar with interfaces and put it in the classpath of you client-vm

  • Use JNDI in order to obtain a reference on the EJB stub from server.

  • For JNDI you'll need an implementation that depends on container (for example, if its JBoss jboss-client-all.jar should be enough (I don't remember the exact name but you've got the point, I think)

Once you feel comfortable with the overall notions and definitions, read this example, I think its handy enough Example

Hope this helps

Upvotes: 1

Related Questions