Skip to main content

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,




Comments

  1. 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

    ReplyDelete
  2. STEP 1:

    Context context = new InitialContext():



    The initial context is a reference to the JNDI lookup service.
    It is like the entry into the JNDI virtual directory tree.


    STEP 2:

    Object o = context.lookup("mejb"):



    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.
    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):



    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.

    ReplyDelete

Post a Comment

Popular posts from this blog

Slow Android emulator

I have a 2.67 GHz Celeron processor, 1.21 GB of RAM on a x86 Windows XP Professional machine. My understanding is that the Android emulator should start fairly quickly on such a machine, but for me it does not. I have followed all instructions in setting up the IDE, SDKs, JDKs and such and have had some success in staring the emulator quickly but is very particulary. How can I, if possible, fix this problem?

Java Urban Myths

Along the line of C++ Urban Myths and Perl Myths : What are the Java Urban Myths? That is, the ideas and conceptions about Java that are common but have no actual roots in reality . As a Java programmer, what ideas held by your fellow Java programmers have you had to disprove so often that you've come to believe they all learned at the feet of the same drunk old story-teller? Ideally, you would express these myths in a single sentence, and include an explanation of why they are false.