Client in ejbs

explain the term client in ejbs ? where do we install a client on the server? If the client is a standalone program how i user like me can use the client? explain briefly where this client is used in enterprise applications? I got the doubt because a standalone program is compiled into a class file. As a user how i know what is there in client program?
I am the student learning j2ee Please help me in this regard
Thank You

A client is a standalone program or a web interface that connects to the
server your business logic (written using the EJB technology) runs. Take a
web shop for instance. The web interface is the client. When you order
something, the web interface connects to the server, passes the data,
waits for the result to be returned and displays the result (e.g. one more
item in the cart, higher total and so on).
When you want a web client, you have to deploy a WAR file that contains all
the stuff that is needed (JSPs, Beans, deployment descriptor, ...).
If it is a standalone program, you use it like every other program. You start
it using java -jar client.jar. This program contains some libraries that
enables it to connect the server if needed.
You as a user know that there is a client as you just use it. You may not now
that there is an EJB backend.
HTH
-Danny

Similar Messages

  • Jdk 1.2 clients running ejb deployed on oracle 8.1.5

    Oracle claims that it is possible to run jdk 1.2 clients with ejb on oracle 8.1.5 in the faq : http://technet.oracle.com/products/oracle8i/htdocs/jserver_faq/815faq0012.html
    If you have JDK1.2 on the client side and:
    8.1.5 clients connecting to an 8.1.5 server: This does not work, because of conflicts with the ORB supplied in JDK1.2.
    8.1.5 clients connecting to an 8.1.6 server: This does not work, because of conflicts with the ORB supplied in JDK1.2.
    8.1.6 clients connecting to an 8.1.5 server: This works provided the "server" portion of the application is developed/loaded using the client side tools and jars that are supplied with 8.1.5.
    What do they meen with 8.1.6 clients? and how to make 8.1.6 clients?

    Oracle 8.1.6's JVM uses JDK 1.2. Oracle's 8.1.6 JDBC drivers support JDBC2 and JDK2. The 8.1.6 drivers are available for download from OTN under the Technologies section.
    If you develop a client (application, applet, servlet, JSP, etc.) using the Oracle 8.1.6 JDBC drivers, then this is considered an Oracle 8.1.6 client.
    Laura

  • Corba Client For EJB

    Hello
    I am trying to connect Corba Client to EJB deployed in OC4J.
    I followed the instructions given on
    http://otn.oracle.com/tech/java/oc4j/htdocs/how-to-rmi-iiop.html
    But I am not getting success after making tries in different ways.
    Can some body tell how to connect to EJB by a corba client using Oc4j.
    If OC4J does't support RMI-IIOP , can you suggest other server which supports that.
    Thanx in advance.

    I'm stuck exactly with the same issue while trying to port my application from weblogic to jboss.
    I tried to specify different ORB implementations (JacORB, OpenORB) for jvm option org.omg.CORBA.ORBClass, but JBoss couldn't get them instantiated. Native Sun implementation which is used in JBoss by default and can be instantiated, apparently is not fully compatible with weblogic security module.
    So did you manage to find out the solution?
    Edited by DigitalDude at 04/09/2008 11:47 PM

  • Restrict number of simultaneous connection from client to EJB bean

    I have EJB bean and JavaSE client. I want to restrict number of simultaneous connection from client to EJB bean. For example to maximum allowed 3. How I can do it?

    :) but answer is too general.
    I want to know how to design such "simple reference counting". As I understand it is not recommended to use static variables in EJB. so how to implement such counting in a right way?
    Edited by: NoName on Aug 20, 2009 1:25 AM
    Edited by: NoName on Aug 20, 2009 1:31 AM

  • Corba client to EJB on OAS408 ?

    I have an EJB deployed on OAS408. Can I call the EJB methods from a Corba client? How will I setup a CORBA client to communicate RMI over IIOP ?
    I found the following statement on the Oracle Java roadmap :
    "Enterprise beans and Common Ojbect Request Broker Architecture (CORBA) clients can inter-operate with each other opening up the possibility of multiple types of clients accessing EJB servers accross the enterprise."
    Can anybody please help me on how to do this
    null

    I am trying to do exactly the same thing
    But I am unable to read the zip file on
    the newsgroup.
    Can someone mail me the zip of the sample
    code.
    Thanks inAdvance.
    Irfan Lateef

  • Ejb client to ejb communication- slow performance ?

    I think BEA has a very nasty implementation of ejb client to ejb server communication.
    When a client looks up a an ejb component it gets a t3client eastablishing a socket connection to the ejb server (WL server).
    For one client VM there is one such client and all ejb client to server packets go through this one socket. To me it seems to be a major bottleneck for performance.
    Any body has any info ideas on how to get around this.

    What makes you think it's a bottleneck? It nearly always greatly improves performance.
    -- Rob
    Vyask wrote:
    I think BEA has a very nasty implementation of ejb client to ejb server communication.
    When a client looks up a an ejb component it gets a t3client eastablishing a socket connection to the ejb server (WL server).
    For one client VM there is one such client and all ejb client to server packets go through this one socket. To me it seems to be a major bottleneck for performance.
    Any body has any info ideas on how to get around this.

  • Rmi-iiop client for EJBs

    [att1.html]

    I've been fighting the same issues over the past few days. The answer you gave still left me
    wondering which tool to use. Should it be rmi -iiop or ejbc -iiop? I get the idl files on
    WLS 5.1 generated but then I can't get the idlj to execute properly on the generated
    HelloHome.idl and Hello.idl.
    Wayne
    Andy Piper wrote:
    Abhishek <[email protected]> writes:
    But How do I write Rmi - iiop clients for EJBs.
    when I try to generate the IDL for my EJB by running the weblogic.rmic utility I get an
    error that none of my classes ( Remote, Home and Impl ) implement the remote
    interface. Which is true as EJBs do not directly implement the remote interface.You may be able to get this to work with WLS6.0SP1 and the
    -idlMethodSignatures flag. Take a look at the methods target in
    examples/rmi_iiop/ejb/generic_idl or at
    examples/rmi_iiop/ejb/simplified_idl. This all works fine in
    Silversword.
    andy

  • JDK1.2 client to EJB in Oracle8.1.6

    I had my EJB client (JDK1.1.8) with my EJBs (in Oracle8.1.5) all worked before.
    After I deployed the same EJBs (with SQLJs) into Oracle8.1.6, my EJB client (JDK1.2.2)
    was able to connect and using the EJB sevices.
    However, I got some strange behavior which never occurd with JDK1.1.8 and Oracle8.1.5.
    I will sometimes get exception for calling the remote method as,
    Exception in thread "main" org.omg.CORBA.COMM_FAILURE:
    java.net.SocketException:Connection shoutdown:
    JVM_recv in socket input stream read minor code: 0 completed: No
    at com.visigenic.vbroker.orb.TcpConnection.read(TcpConnection.java, Compiled Code)
    at com.visigenic.vbroker.orb.GiopConnectionImpl.receive_message(GiopConnectionImpl.java:436)
    This normally occured after several calls. But it does not always happen.
    Any suggestions?
    --Yitao
    null

    Sorry, the problem still exists. If I repeated calling all the methods
    in my EJB from the EJB client, I will eventually get the
    "Peer disconnected socket" error.
    Please let me know what could be the reason.
    Thanks for any help.
    --Yitao                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

  • How to create a WEB client in EJB module in NB 4.1 ?

    hi
    I am using SUN AS and NB 4.1
    I want to invoke a WS from an EJB. For some reason NB 4.1 doesn't allow me to create a WS client. Why ?

    netbeans forum may prove to be more useful because
    this seems to be a netbeans specific problem; an EJB
    can be a WS client and this works as is evident with
    the Adventure Builder sample app from blueprintsI generated WS stub manually without NB 4.1.

  • Creating multiple stateful session beans from a java client. (EJB 3.0)

    I'm having difficulties with the following:
    To access the ShoppingCartBean, I have to put the following annotation in my standalone java client:
    @EJB
    private static ShoppingCartRemote shoppingCartBean;
    The static must be there, thus only one ShoppingCartBean will exist within my java client. But as the ShoppingCartBean is a stateful session bean, I want to be able to get different beans of the same type.
    What is the correct way to do this in EJB 3.0?

    Great question. Because Home interfaces have been removed for the EJB 3.0 simplified
    API, stateful session bean creation happens as a side-effect of injection. However, the
    same is true of EJB 3.0 business interface lookups. The easiest way to create additional
    stateful session beans is to lookup the same dependency that was declared via your
    @EJB annotation.
    E.g.,
    // Assuming the declaring class is pkg1.ShoppingCartClient.java
    InitialContext ic = new InitialContext();
    ShoppingCartRemote scr1 = (ShoppingCartRemote)
    ic.lookup("java:comp/env/pkg1.ShoppingCartClient/shoppingCartBean");
    Note that the name relative to java:comp/env is the default associated with your
    @EJB annotation since the name() attribute wasn't used. Alternatively, you
    could have used :
    @EJB(name="scb") private static ShoppingCartRemote shoppingCartBean;
    InitialContext ic = new InitialContext();
    ShoppingCartRemote scr1 = (ShoppingCartRemote) ic.lookup("java:comp/env/scb");
    Yet another alternative is to declare the @EJB at the class-level. This just defines
    the dependency without any injection, which is fine if you want to create a bunch of
    them via lookup anyway.
    @EJB(name="scb", beanInterface=ShoppingCartRemote.class)
    public class .... {                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

  • Writing a Standalone Client for EJB 3.0 Bean For Weblogic 10

    Steps for Writing a Standalone Client
    Client Code
    package com.client;
    import java.util.Properties;
    import javax.naming.Context;
    import javax.naming.InitialContext;
    import javax.naming.NamingException;
    import javax.rmi.PortableRemoteObject;
    import com.StatelessService;
    public class StatelessClient {
         public static void main(String [] args){
              Context ctx = null;
              try {
                   ctx = getInitialContext("t3://localhost:7001/protossbservice","weblogic","weblogic");
                   Object ref = ctx.lookup("StatelessService#"+StatelessService.class.getName());
                   StatelessService service = (StatelessService)PortableRemoteObject.narrow(ref,StatelessService.class);     
                   System.out.println("StatelessClient.getMessage() ++");
                   String  message = service.getMessage();
                   System.out.println("StatelessClient.getMessage --");
                        System.out.println("Message from Bean "+message);
         } catch (NamingException e) {
                   e.printStackTrace();
         private static Context getInitialContext(String url, String user, String password) throws NamingException {
            Properties h = new Properties();
            h.put(Context.INITIAL_CONTEXT_FACTORY,
                    "weblogic.jndi.WLInitialContextFactory");
            h.put(Context.PROVIDER_URL, url);
            h.put(Context.SECURITY_PRINCIPAL, user);
            h.put(Context.SECURITY_CREDENTIALS, password);
            return new InitialContext(h);
    Business Interface
    package com;
    public interface StatelessService {
         public String getMessage();
    Stateless Session Bean
    package com;
    import javax.annotation.PostConstruct;
    import javax.ejb.Remote;
    import javax.ejb.Stateless;
    * Test Stateless Session Bean
    @Stateless(mappedName="StatelessService")
    @Remote(StatelessService.class)
    public class StatelessServiceBean implements StatelessService {
         public String getMessage(){
              return "I am invoked";

    emekaco wrote:
    Hi,
    I am a trainee although with a good background in java.
    I'm urgently in need of a free ebook for EJB 3.0 with the latest version of Netbean. Pls, help me with one if you have. my email is [email protected]
    http://www.theserverside.com/tt/books/wiley/masteringEJB3/index.tss
    Here's a good free e-book but without Netbean. It covers everything you would need to know about EJBs.
    >
    Again, is container managed bean good for a big project?
    The question is too vague to be answered. It's a design decision that needs more details.

  • Memory leak in a client using EJBs deployed in a Bea Weblogic 10.0.0 cluste

    Hi all,
    We are having a memory leak in a client using stateless EJBs deployed in cluster. The client is a Tomcat 6.0.18 with java 6 but it is reproduced using Tomcat 5 with java 5. The client is calling a Weblogic Server 10.0 making
    calls to an EJB deployed in cluster that has two instances installed in two different machines.
    The client works fine if we shutdown one of the server instances and so when the client is using only one instance.
    Resuming the environment:
    Client Side:
    1 HP-Itanium machine with HP-UX.
    1 Tomcat 6 with java 6 (reproduced with java 5)
    Bea Weblogic client (wlclient.jar) for Weblogic 10.0.0
    Server Side:
    2 HP-Itanium machines with HP-UX
    Bea Weblogic Server 10.0.0 installed in both machines
    An unique domain
    Two Bea instances (one per machines) associated to a Bea Cluster
    EJBs deployed in both instances
    We have monitored the memory consumed in Tomcat and we have noticed that the VM memory PS OLD GEN grows up permanently when we make tests having the two server side Bea Instances up. We have extended
    the memory VM parameters in Tomcat client till 1G and it's only a way to delay the end: the free memory is empty, the GC is not able to free no more byte and the CPU is 100% consumed by the GC work. At the end Tomcat Client
    doesn't accept more http petitions and must be restarted.
    Besides, we have studied the VM memory in Tomcat using jmap and importing it using Eclipse Memory Analyzer. We have seen some strange memory blocks of several Mbytes that are always growing up and that are stored
    under data structures in the package com.sun.corba:
    com.sun.corba.se.impl.legacy.connection.SocketFactoryConnectionImpl (4.5Mb)
    |
    -> com.sun.corba.se.impl.transport.CorbaResponseWaitingRoomImpl
    |
    -> java.util.Hashtable
    |
    -> java.util.Hashtable$Entry
    |
    -> java.util.Hashtable$Entry
    -> java.util.Hashtable$Entry
    -> java.util.Hashtable$Entry
    Has anybody any idea about this problem?
    Thanks in advance.

    Hi all,
    We are having a memory leak in a client using stateless EJBs deployed in cluster. The client is a Tomcat 6.0.18 with java 6 but it is reproduced using Tomcat 5 with java 5. The client is calling a Weblogic Server 10.0 making
    calls to an EJB deployed in cluster that has two instances installed in two different machines.
    The client works fine if we shutdown one of the server instances and so when the client is using only one instance.
    Resuming the environment:
    Client Side:
    1 HP-Itanium machine with HP-UX.
    1 Tomcat 6 with java 6 (reproduced with java 5)
    Bea Weblogic client (wlclient.jar) for Weblogic 10.0.0
    Server Side:
    2 HP-Itanium machines with HP-UX
    Bea Weblogic Server 10.0.0 installed in both machines
    An unique domain
    Two Bea instances (one per machines) associated to a Bea Cluster
    EJBs deployed in both instances
    We have monitored the memory consumed in Tomcat and we have noticed that the VM memory PS OLD GEN grows up permanently when we make tests having the two server side Bea Instances up. We have extended
    the memory VM parameters in Tomcat client till 1G and it's only a way to delay the end: the free memory is empty, the GC is not able to free no more byte and the CPU is 100% consumed by the GC work. At the end Tomcat Client
    doesn't accept more http petitions and must be restarted.
    Besides, we have studied the VM memory in Tomcat using jmap and importing it using Eclipse Memory Analyzer. We have seen some strange memory blocks of several Mbytes that are always growing up and that are stored
    under data structures in the package com.sun.corba:
    com.sun.corba.se.impl.legacy.connection.SocketFactoryConnectionImpl (4.5Mb)
    |
    -> com.sun.corba.se.impl.transport.CorbaResponseWaitingRoomImpl
    |
    -> java.util.Hashtable
    |
    -> java.util.Hashtable$Entry
    |
    -> java.util.Hashtable$Entry
    -> java.util.Hashtable$Entry
    -> java.util.Hashtable$Entry
    Has anybody any idea about this problem?
    Thanks in advance.

  • Servlet Client for EJB

    Hi,
    Till now i had normal java client for my EJB Programs.. I use j2ee 1.4 AppServer
    Whenever i run my java program i used to set classpath for the returned client jar file and appserv-rt.jar but now when i run my servlet client program i don know how to set them and hence when i run the servlet i get an error saying No class def found for home interface...
    How do i rectify this?
    Waiting for ur replies!
    Thanks,
    Akshatha

    Hi,
    Inspite of putting my jar file i am getting the no
    class def found error. So how do i
    proceed further?
    AkshathaDid you put the EJB client jar in the WEB-INF/lib directory for your web application as suggested?

  • Problem running Java client of EJB deployed on WebSphere

    Hi,
    I am using websphere studio 5.1.2 with fix pack 3. I have a sample Stateless Session Bean (EJB) deployed and running on websphere.
    I wrote a small Java client program as below.
    import java.util.Hashtable;
    import HelloJavaHome;
    import HelloJava;
    import javax.naming.InitialContext;
    import javax.naming.Context;
    import javax.ejb.EJBHome;
    import javax.ejb.EJBObject;
    public class RemoteConn {
    public static void main(String[] ar) throws Exception{
    String greeting = "";
    try{
    Hashtable env = new Hashtable();
    //env.put(Context.INITIAL_CONTEXT_FACTORY, "com.ibm.websphere.naming.WsnInitialContextFactory");
    //env.put(Context.INITIAL_CONTEXT_FACTORY, "com.ibm.ejs.ns.jndi.CNInitialContextFactory");
    env.put(Context.INITIAL_CONTEXT_FACTORY, "com.ibm.ws.naming.util.WsnInitCtxFactory");
    //env.put(Context.PROVIDER_URL, "corbaloc:iiop:myhost.mycompany.com:2809/NameServiceCellPersistentRoot");
    env.put(Context.PROVIDER_URL, "iiop://localhost:2809");
    System.out.println("Before creating context ");
    InitialContext initContext = new InitialContext(env);
    System.out.println("Before looking up HelloJavaHome.");
    //Object obj = initContext.lookup("java:comp/env/ejb/HelloJavaHome");
    Object obj = initContext.lookup("ejb/HelloJavaHome");
    System.out.println("After lookup javahome.");
    HelloJavaHome home = (HelloJavaHome) javax.rmi.PortableRemoteObject.narrow(obj, HelloJavaHome.class);
    HelloJava remote = home.create();
    greeting = remote.getGreeting("John");
    catch(Exception e){
    e.printStackTrace();
    System.out.println("Greeting::"+ greeting);
    I did not have any problem if I write and run this client from Websphere studio environment..
    However its giving lot of compilation and runtime errors when I tried to run from command line.
    I could eliminated compilation errors by setting the below jar files in the classpath.
    testclient.jar; (client jar of my EJB)
    j2ee.jar;
    naming.jar;ras.jar;
    wsexception.jar;
    bootstrap.jar;
    namingclient.jar;
    websphere.jar;server.jar;
    ejbcontainer.jar;
    ecutils.jar;
    Now it is throwing runtime error after the statement, "Before looking up HelloJavaHome.", has printed. Here is the stack trace of exception ..
    Exception in thread "main" java.lang.NoClassDefFoundError: com.ibm.CORBA.iiop.GlobalORBFactory
    at com.ibm.ejs.oa.EJSORBImpl.class$(EJSORBImpl.java:44)
    at com.ibm.ejs.oa.EJSORBImpl.initializeORB(EJSORBImpl.java:195)
    at com.ibm.ejs.oa.EJSClientORBImpl.(EJSClientORBImpl.java:93)
    at com.ibm.ejs.oa.EJSClientORBImpl.(EJSClientORBImpl.java:65)
    at com.ibm.ejs.oa.EJSORB.init(EJSORB.java:385)
    at com.ibm.ws.naming.util.Helpers.getOrb(Helpers.java:284)
    at com.ibm.ws.naming.util.WsnInitCtxFactory.getInitialContextInternal(WsnInitCtxFactory.java:369)
    at com.ibm.ws.naming.util.WsnInitCtx.getContext(WsnInitCtx.java:112)
    at com.ibm.ws.naming.util.WsnInitCtx.getContextIfNull(WsnInitCtx.java:422)
    at com.ibm.ws.naming.util.WsnInitCtx.lookup(WsnInitCtx.java:143)
    at javax.naming.InitialContext.lookup(InitialContext.java:347)
    at RemoteEJBConn.main(RemoteEJBConn.java:38)
    I appreciate if sombody could help me ASAP fixing this problem.
    Thanks in advance.

    Try using the IBM JVM (theres one shipped with WebSphere in websphere_home\AppServer\java
    Also include idl.jar and ffdc.jar on the classpath

  • PageNotFound when using servlets as clients for EJB

    Can anyone help me? I have a container managed EJB. I'm using servlets as my client. I placed my EJB's in a jar file and my servlets and html pages in a WAR file. I deployed them using J2EE's deploytool. I can access my html files but not my servlet files. It always says file not found or a 405 error (resource not allowed) I access my servlet this way...
    http://localhost:8000/ReservationContextRoot/ReservationAlias
    my web.xml file looks like the following:
    <?xml version="1.0" encoding="Cp1252"?>
    <!DOCTYPE web-app PUBLIC '-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN' 'http://java.sun.com/j2ee/dtds/web-app_2.2.dtd'>
    <web-app>
    <display-name>ReservationWAR</display-name>
    <description>no description</description>
    <servlet> <servlet-name>ReservationServlet</servlet-name>
    <display-name>ReservationServlet</display-name>
    <description>no description</description>
    <servlet-class>ReservationServlet</servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name>ReservationServlet</servlet-name>
    <url-pattern>ReservationAlias</url-pattern>
    </servlet-mapping>
    <session-config>
    <session-timeout>30</session-timeout>
    </session-config>
    <resource-ref>
    <description>no description</description>
    <res-ref-name>jdbc/ReservationDB</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    </resource-ref>
    <ejb-ref> <description>no description</description>
    <ejb-ref-name>ejb/Reservation</ejb-ref-name>
    <ejb-ref-type>Entity</ejb-ref-type>
    <home>ReservationHome</home>
    <remote>Reservation</remote>
    </ejb-ref>
    </web-app>

    Are you sure your servlet class itself can run without problem? Try debug in the these steps:
    1. Change your servlet to simply output some HTML text, so you can be sure tomcat can get to your servlet. If this is OK, it means the servlet itself has problem, probably the EJB stuff.
    2. Make sure the EJB container is running.
    3. Make your servlet a standalone client (not a servlet) and see if it can run. Pay attention to how you do JNDI lookup of the EJB.
    Yi

Maybe you are looking for

  • Flash cropping randomly

    Help, all flash videos are cropping randomly. Also, when I go full screen, the video doesn't fill up the entire screen like it used to. I still see black frame on all sides. It only happens on Firefox. I tried uninstalling both flash and firefox then

  • Creating ODS in BI 7.0

    Can anyone tell me the procedure to create ODS in BI 7.0 ? Thanks in advance. Srini

  • Firefox crashes/closes on websites with flash

    This started yesterday when I was prompted to download and install the 3.6.7 update for Firefox. After restarting the browser, I get a message that it was not installed correctly, and then it closes without warning. It does not give the usual message

  • Actions in JPopupMenu

    Hello, I noticed lately by using a reference viewer tool that I've got more and more instances of a JPopupmenu on the heap. Every time I right click I create a new menu and show it. The menu uses actions as menuitems. The problem seems to be, that I

  • Renderer queueing geometry updates until OOM

    Hi, we have some quite annoying problem in a project using j3d. We issue quite some geometry changes to show processdata. It seems like these changes/updates are queued when the frame containing the canvas becomes inactive, like minimizing it or chan