Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to connect remote EJB module from application client

I have a EJB module in remote Glassfish server and application client in my computer. I want to connect from the application client to the remote EJB.

Here is the my EJB interface:

@Remote
public interface BookEJBRemote
{
    public String getTitle();
}

Here is the my ejb:

@Stateless
public class BookEJB implements BookEJBRemote
{

    @Override
    public String getTitle()
    {
        return "Twenty Thousand Leagues Under the Sea";
    }
}

I have several questions :

  1. Can I use Dependency Injection in the remote application client to connect to the ejb? If so what can i do to achieve this. Do i need to configure in the sun-ejb-jar.xml and sun-application-client.xml? In other words, if i use Dependency Injection like @EJB BookEJBRemote book; How application client container know what ejb to be injected? Where should i specify the information?
  2. How can i run the application client? I tried to run package-appclient in the glassfish server to get appclient.jar and copy it to my computer. Then i type appclient.jar -client myAppClient.jar . It didn't work. How do i point the target server?
  3. if i cannot use Dependency Injection in the client then i guess i have to use JNDI lookup. Do i need to configure jndi name in sun-ejb-jar.xml or in the sun-application-client.xml?

No matter how i try i never manage to run application client ? Can you guys put some working example? And thank you for every advises and examples?

like image 438
Zeck Avatar asked Jun 07 '10 03:06

Zeck


People also ask

How do you call EJB?

When you call a server-side EJB from a client application, you must use a network protocol that involves an ORB, such as RMI over IIOP. However, calling out from the servlet to an external object that is in the same session as the servlet can be much simpler and faster than calling from a client.

What is remote EJB?

javax.ejbDeclares the remote business interface(s) for a session bean. The Remote annotation is applied to the session bean class or remote business interface to designate a remote business interface of the bean.


1 Answers

Check this tutorial Creating a Java Stand-Alone Client. Basically you need to

  • setup JNDI by yourself since your client can't use the containers environment.
  • Lookup the remote interface.
  • And of course include the required jar files in your classpath
like image 75
stacker Avatar answered Sep 19 '22 22:09

stacker