Beans VS EJB's

Can anyone tell me the major differences between neans and Enterprise Beans? Thx in advance.

many difference
beans are classes that have get and let methods (like classes in VB)
they are also serializable
ejb allows client app to 'talk' to them on the network
they are useful for designing web services or accessing (read & write) a database over the network
there are many other things to tell about ejb's but i haven't time today
goto http://www.ifrance.fr/poupard/java.htm
in the paragraph J2EE you'll find 7 or 8 cool links describing J2EE (EJB's are a part of J2EE)
marvinrouge

Similar Messages

  • Local session bean lookup in another local session bean in EJB 3.0

    Hi,
    I am doing JNDI lookup of a local session bean in a session bean. ( I do not want to use EJB dependency injection).
    Lookup of local interface from session bean is successful. But, when the calling session bean is a local session in another session bean, the lookup fails.
    Here is an example:
    @Stateless
    @EJBs({@EJB(name="EJB2Local", beanInterface=EJB2Local.class),
    @EJB(name="EJB3Local", beanInterface=EJB3Local.class)})
    public class EJB1 implements EJB1Remote, EJB1Local{
    public void findEJB3Local(){
    //1. JNDI lookup for EJB3Local ----
    //2. EJB3Local.someFunction()
    @Stateless
    @EJB(name="EJB1Local", beanInterface=EJB1Local.class)
    public class EJB2 implements EJB2Remote, EJB2Local{
    public void findEJB1Local(){
    //1. JNDI lookup EJB1Local
    // 2. Call EJB1Local.findEJB1Local method
    //THIS METHOD CALL WILL FAIL.
    public void findEJB1Remote(){
    //1. JNDI lookup EJB1
    / 2. Call EJB1Local.findEJB1 method
    @Stateless
    public class EJB3 implements EJB3Remote, EJB3Local{
    public void someFunction(){}
    This setup was working in EJB 2.1, as we had clear ejb-local-ref definitions in our ejb-jar.xml file.
    I am suspecting that EJB 3.0 has special annotation to use when lookup is made from another local session bean.
    Any comments will be appreciated.
    Thanks,
    Mohan

    From a private component environment perspective, declaring @EJB in a bean class is equivalent
    to using ejb-ref or ejb-local-ref for that same bean in ejb-jar.xml. In each case, the EJB dependency
    is declared for that bean. Each EJB component has its own private component environment, so
    code running within invocations on different EJBs can not see the component environment of the
    components that made the invocations.
    What exact error are you getting? Please post the stack trace if possible.
    --ken                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • Need of session bean in ejb?

    We can have the session beans business logic in Servlet using some support class(may be bean).I would like to know exact purpose & use of session bean in ejb specification.

    We can have the session beans business logic in
    Servlet using some support class(may be bean).I would
    like to know exact purpose & use of session bean in
    ejb specification.You can think of a SessionBean as a script. It handles certain business logic, for example, like book a flight. It might get the itinerary, charge the credit card, book a flight, etc. Usually, it is used as a facade, or front to one or more entity beans.
    Now, you could do these exact same things with servlets, but the session bean allows you to have:
    1. A single transaction scope. If one of your processes throws an exception and you've updated, for example 2 database tables, this transaction can be rolled back and everything will be consistant.
    2. Servlets, by nature, are threaded and you have to take special care with synchronization issues of any member variables that you may use in the servlet. With EJBs there are no synchronization issues.
    3. Security. You can specifically disallow/allow access to methods based on roles that you define.
    These are the big reasons for using EJBs. Yes, you can do all of this with servlets, but you'd have to do it yourself ... but why do it, if it is already done for you.
    I hope that that clears things up.
    Regards,
    Paul

  • Difference between simple beans and EJB

    Anybody knows... the difference between the simple beans and EJB... Pls share with all. thanks a lot.

    The Verrrrrrrrry short scoop is that JavaBeans pretty much just adhere to a standard format, mostly getters and setters. EJBs work only within a specific framework - an EJB container, and have access to J2EE support. For a detailed look at EJBs, see my tutorial Getting Started with Enterprise JavaBeans Technology at the developerWorks Java zone:
    http://www-106.ibm.com/developerworks/edu/j-dw-java-gsejb-i.html
    Joe Sam
    Joe Sam Shirah - http://www.conceptgo.com
    conceptGO - Consulting/Development/Outsourcing
    Java Filter Forum: http://www.ibm.com/developerworks/java/
    Just the JDBC FAQs: http://www.jguru.com/faq/JDBC
    Going International? http://www.jguru.com/faq/I18N
    Que Java400? http://www.jguru.com/faq/Java400

  • Calling Enity Bean's business methods from a session bean in EJB 3.0 specif

    Hello everybody,
    Happy to be a member with you in this forum.
    This is my first participation in this forum.
    I have some problem to start with EJB 3.0 specification, I have created an entity bean with some business methods that access a mysql datbase, then i want to create a stateful session bean to provide the client an interface to consume business methods in Enity be
    Please can someone you help me with an example

    @Vladimir Pavlov
    I did not understand what you are trying to convey...
    Whenever an attribute of this bean is modified we want to access that latest value.... Is there any way to know, when the attribute is modified? Just with get/set we can not know, when it is modified... am i right?
    We want to achieve this without modifying the existing source code of the EJB....
    @ Ivo Simeonov
    As of my knowledge, to use interceptors we need to modify the EJB source code, but we do not want to touch the source code....
    All this has to be achieved dynamically when the application is deployed in the production.... is it possible???

  • Local Session Bean calling another local Session Bean in EJB 3.0

    Hi,
    In EJB 3.0, I am trying to do JNDI lookup of a local sesion bean from another session bean's helper class.
    I am not using @EJB injection mechanism here, as call to the local session bean is made in a helper class. Helper classes do not support resource injection.
    Following are the EJB class definitions used in my project. Call to "EJB3Local" made from "EJB1" fails as the "EJB2" helper class is calling "EJB1Local"
    @Stateless
    @EJBs({@EJB(name="EJB2Local", beanInterface=EJB2Local.class),
    @EJB(name="EJB3Local", beanInterface=EJB3Local.class)})
    public class EJB1 implements EJB1Remote, EJB1Local{
    public void findEJB3Local(){
    //1. JNDI lookup for EJB3Local ----
    //2. EJB3Local.someFunction()
    @Stateless
    @EJB(name="EJB1Local", beanInterface=EJB1Local.class)
    public class EJB2 implements EJB2Remote, EJB2Local{
    public void findEJB1Local(){
    //1. JNDI lookup EJB1Local
    // 2. Call EJB1Local.findEJB1Local method
    @Stateless
    public class EJB3 implements EJB3Remote, EJB3Local{
    public void someFunction(){}
    A remote call to EJB2.findEJB1Local() will invoke EJb1Local.findEJB3Local method and the call fails with "java:comp/env/EJB3Local" not found in EJB1Local.
    Has anybody encountered an issue like this issue with local interface calling another local interface?
    Thanks,
    Mohan

    To refer a Ejb from another Ejb include <ejb-ref> element
    in ejb-jar.xml
    <session>
    <ejb-name>SessionBeanA</ejb-name>
    <ejb-ref>
    <ejb-ref-name>SessionBeanB</ejb-ref-name>
    <ejb-ref-type>Session</ejb-ref-type>
    <home>com.ejb.SessionBeanBHome</home>
    <remote>com.ejb.SessionBeanB</remote>
    </ejb-ref>
    </session>
    Include a <reference-descriptor> in weblogic-ejb-jar.xml
    <weblogic-enterprise-bean>
    <ejb-name>SessionBeanA</ejb-name>
    <reference-descriptor>
    <ejb-reference-description>
    <ejb-ref-name>SessionBeanB</ejb-ref-name>
    <jndi-name>com.ejb.SessionBeanBHome</jndi-name>
    </ejb-reference-description>
    </reference-descriptor>
    </weblogic-enterprise-bean>
    In SessionBeanA Bean class refer to SessionBeanB with
    a remote reference to SessionBeanB.
    InitialContext initialContext=new InitialContext();
    SessionBeanBHome sessionBeanBHome=(SessionBeanBHome)
    initialContext.lookup("com.ejb.SessionBeanBHome");
    SessionBeanB sessionBeanB=sessionBeanBHome.findByPrimaryKey(primarykey);
    sessionBeanB.update();
    sessionBeanB.getAll();
    thanks,
    Deepak

  • CMP Entity Bean with ejb-ql finder methods and INFORMIX database

    Hi,
    I have some CMP Entity Beans with finder methods defined in ejb-ql. In my ejb-jar, within <entity> definitions I have something like:
        <entity>
          <abstract-schema-name>BeanName</abstract-schema-name>
          <cmp-field><field-name>fieldOne</field-name></cmp-field>
          <cmp-field><field-name>fieldTwo</field-name></cmp-field>
          <query>
            <query-method>
              <method-name>findAll</method-name>
              <method-params></method-params>
            </query-method>
            <ejb-ql>SELECT OBJECT(o) FROM BeanName o</ejb-ql>
          </query>
        <entity>
    And in persistent.xml:
    <db-properties>
         <data-source-name>datasource_name</data-source-name>
    </db-properties>
    <entity-bean>
         <ejb-name>BeanName</ejb-name>
         <table-name>table_name</table-name>
         <field-map key-type="NoKey">
         <field-name>fieldOne</field-name>
         <column><column-name>column_one</column-name></column>
          </field-map>
         <field-map key-type="NoKey">
         <field-name>fieldTwo</field-name>
         <column><column-name>column_two</column-name></column>
          </field-map>
          <finder-descriptor>
              <method-name>findAll</method-name>
              <method-params/>
         </finder-descriptor>
    Once deployed, on server side, I can found a java source file (with corresponding compiled class file) in path:
    j2ee/cluster/server0/apps/companyName/MyEARApp/EJBContainer/temp/temp38837373733/route/to/package/
    with names:
    BeanName0_0pm.java
    BeanName0_0PM.class
    and the generated java file contains this code:
      public java.util.Enumeration ejbFindAll() throws javax.ejb.FinderException, javax.ejb.EJBException  {
        TransactionContext tc = pm.getTransactionContext();
        Connection conn = null;
        PreparedStatement pSt = null;
        ResultSet ejb_rs = null;
        int status = javax.transaction.xa.XAResource.TMSUCCESS;
        try {
          conn = pm.getConnectionForFindMethod();
          pSt = conn.prepareStatement("SELECT \"O\".\"COLUMN_ONE\",\"O\".\"COLUMN_TWO\", FROM \"TABLE_NAME\" \"O\"");
          ejb_rs = pSt.executeQuery();
    I'm trying to call this method but it throws a SQLException when preparing the statement.
    It seems that Informix does not like this SQL syntax because of upper case names, doble quotes on table alias, or something else.
    When editing persistent.xml in netweaver, I can define the element <datasource-vendor> as ORACLE, SAPDB, MS_SQL_SERVER, DB2_UDB_AS400 or DB2_UDB_OS390 but INFORMIX is not an accepted value.
    Is there any way to define how this SQL query is build?
    Thanks in advance.

    The return type of the finder method defined in the remote home interface is either the entity bean's remote interface or a collection of objects implementing the entity bean's remote interface. The return type of the finder method defined in the local home interface is either the entity bean's local interface or a collection of objects implementing the entity bean's local interface

  • EJB 2.1 session bean calling EJB 3 session bean?

    I have a WL 10 (JDK 1.5/EE 5) server that has several EJB 3 stateless session beans deployed and working well. But now I need to allow a JBoss 3.2.3 (JDK 1.4) EJB 2.1 session bean make remote calls into these EJB 3 EJBs. Can this even work?
    It seems to me that EJB 3 calling EJB 2 would be fine, but not in the reverse?

    I have a WL 10 (JDK 1.5/EE 5) server that has several EJB 3 stateless session beans deployed and working well. But now I need to allow a JBoss 3.2.3 (JDK 1.4) EJB 2.1 session bean make remote calls into these EJB 3 EJBs. Can this even work?
    It seems to me that EJB 3 calling EJB 2 would be fine, but not in the reverse?

  • Stateful Session Bean Initialization (EJB 3.0)

    Hi all!
    In EJB 2.1 the initialization was with create (args) methods. NOw, how is it exploited? Create methods are no more there and there must be a way to send parameters to the stateful session bean when it is newly created...isn't it?
    Thank you!

    There is no pre-defined equivalent of a create method in EJB 3.0. If you want to initialize a
    stateful session bean, just define a business method that the client should use as an initialization
    method.

  • Persisting serialized bean in EJB 3.0

    Hello,
    I'm seeing some surprising results in EJB 3.0 when executing an update to some bean that is unmarshalled from a remote client. Perhaps I'm misunderstanding the API, but I reached the conclusion, from documentation and various online discussions, that merge() could handle this need - but it does not. An exception is thrown.
    Via the EntityManager API I can't update a bean that's being constructed from a remote payload. However, if I access the underpinning Toplink Session, I can use its API to execute an update via the unmarshalled bean. So, I'm able to satisfy my need, but I'm a bit surprised in how I have to do it. It seems surprising to me that the public API of EntityManager wouldn't support it, and, instead, I have to navigate to the Toplink API for its mergeClone API. Am I misunderstanding or misconfiguring something?

    Post your update code.

  • Can i call Bean managed EJB with transaction attribute Required New

              I am calling a BeanManaged EJB which has a transaction attribute
              set to Required New from a container managed bean. Does it create a new transaction
              other than the Bean managed transaction. Do i really need a required new field
              transaction attribute.All i need is user controlled transaction.Do i need to set
              the transaction aatibute.
              Thanks
              Krish.
              

    Hi Krish,
              The question does not make much sense.
              I would suggest that you set all your tx settings to "Required" unless you
              have a specific reason to do otherwise, and in those few instances that you
              have a specific reason to do otherwise, then change it in just those places.
              Peace,
              Cameron Purdy
              Tangosol Inc.
              << Tangosol Server: How Weblogic applications are customized >>
              << Download now from http://www.tangosol.com/download.jsp >>
              "KRISH" <[email protected]> wrote in message
              news:[email protected]..
              >
              > I am calling a BeanManaged EJB which has a transaction attribute
              > set to Required New from a container managed bean. Does it create a new
              transaction
              > other than the Bean managed transaction. Do i really need a required new
              field
              > transaction attribute.All i need is user controlled transaction.Do i need
              to set
              > the transaction aatibute.
              >
              > Thanks
              >
              > Krish.
              >
              

  • How to intantiate Stateful session bean in EJB 3 ?

    In EJB 2.x, to instantiate a Stateful Session bean the process was:
    1. Lookup Home object
    2. call create(args) method on Home, that in turn would call corresponding ejbCreate(args) on the bean implementation.
    Now, in EJB 3, there is no concept of Home interaface, How can I instantiate a stateful session bean with some initialization parameters.
    Thanks

    Just the spec. NetBeans should only be providing the ability to add an ejbCreate method if the bean exposes a Local or Remote 2.x view.
    Each lookup or injection of a stateful session bean results in a new bean instance. As long as you call your methods to populate the additional
    state right after first acquiring the stateful session bean reference it will work.
    --ken                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

  • Error deploying Bean with EJB QL statement in ejb-jar.xml

    Hi,
    I'm using Oracle iAS 9i Rev:9.03.
    I've tried to deploy a Entity Bean with the following EJB QL Query:
    &lt;/cmp-field&gt;
    &lt;query&gt;
    &lt;query-method&gt;
    &lt;method-name&gt;findByProcessStep&lt;/method-name&gt;
    &lt;method-params&gt;
    &lt;method-param&gt;java.lang.Integer&lt;/method-param&gt;
    &lt;method-param&gt;java.lang.Integer&lt;/method-param&gt;
    &lt;/method-params&gt;
    &lt;/query-method&gt;
    &lt;ejb-ql&gt;SELECT OBJECT(p) FROM Processparameter AS p WHERE p.stepid=?1 AND p.stepversion=?2&lt;/ejb-ql&gt;
    &lt;/query&gt;
    &lt;/entity&gt;
    Without the query statement everything works fine. As soon as I include it I get the following Error message from dcmctl:
    ADMN-300075
    Nested exception
    Base Exception:
    java.rmi.RemoteException:Failure to initialize EJBQL descriptors: java.lang.RuntimeException: No method found for XML query element: Ambiguous or invalid &lt;query-method&gt;
    Is this an Oracle iAS error or is there an error in my query?
    Thanks in advance
    Jens

    try :
    p.stepid and p.stepversion are correct insert into &lt;cmp-field&gt; ?
    and Processparameter is the correct name of &lt;abstract-schema-name&gt;?
    is your &lt;ejb-ql&gt; insert in the right &lt;entity&gt; ?
    findByProcessStep(Integer, Integer) is the unique name in your ejb-jar? and in the (LocalHome ||RemoteHome)

  • Primary Key for Read Only Entity Beans In EJB 3.0

    Hi,
    I have checked the spec for ejb 3.0 which mentions that, there is no common standard for the vendor to implement the Read only Entity Beans.
    My question over here is how it is implemented in OC4J??
    Do we need to specify a primary key attribute in the read-only entity bean?
    w.r.t BC4J(ADF) i remember, we used to create a read-only View Object with out specifying a primary key.
    Just want to check is that the way it works in EJB 3.0 (Implemented by OC4J).
    Thanks for your help in advance.
    Shiva

    Hi,
    Try using the JBoss embedded container:
    http://docs.codehaus.org/display/MAVENUSER/How+to+use+the+JBoss+Embedded+EJB3+Container+for+Unit+testing
    /klejs

  • Using Spring beans from EJB MDB

    I have a situation where I need to use spring beans from an EJB 3.0 MDB. The project does not have any webapps or anything,
    it will be only a MessageBean facade that needs to call spring beans. It is meant to be a service, that can be called by usign a single EJB message.
    The problem is I cannot get the spring context to load properly, since the MDBean it self is initialized(constructor called) only when it receives the first message from the broker, thus It's "too late" to initialize the spring context. What I want to do is load the spring context when the EJB is deployed in the Java EE container. So, is there a way I can call a some method, class, anything when the EJB is deployed in the container. Can I do something with a deployment descriptor?
    I am using glassfish V2 UR1, EJB 3.0, Spring 2.0.7 The project is deployed as a jar.

    Miku wrote:
    I have a situation where I need to use spring beans from an EJB 3.0 MDB. The project does not have any webapps or anything,
    it will be only a MessageBean facade that needs to call spring beans. It is meant to be a service, that can be called by usign a single EJB message. Why not make it a real service? Spring's contract first web services are a very nice way to go. It hides the fact that you're using a message-driven component for processing, too.
    %

  • Java Beans and EJBs

    Hi friends,
    I am quite new to Java and am interested in understanding EJBs and their use in deploying distributed applications.
    I am not sure if I am supposed to first understand Java Beans before jumping to EJBs. I did read some of the messages under the Java Beans forum page but am confused..please help!!!
    Regards,
    Ritu

    if I am supposed to first understand Java Beans before jumping to EJBsYes! Even before understanding objects and inheritence and so on.

Maybe you are looking for

  • Ibase and configuration error while creating a Service Contract

    Hi, I am creating a Service Contract programatically and not manually through the T-code CRMD_ORDER. I am using the Function module CRMXIF_ORDER_SAVE for the same as the FM BAPI_BUSPROCESSND_CREATEMULTI and CRM_ORDER_MAINTAIN did not work for me beca

  • Best practice for editing Captions, photo names, places, etc.

    Hello - I find the small windows in iPhoto to be a bit "clunky" to do a bunch of meta-tagging. Anyone have any thoughts or suggestions on how to best do this? Where I can, I do batch changes. If I upload photos to mobilme galleries - can you edit thi

  • IS-Banking / Reference Interest Rates

    Hi, We are having a problem when creating a condition group - time deposit settlement (T-code F9COGR2). We first defined a reference interest rate (for credit interest time deposit). We then changed  the interest rate and when we run the settlement,

  • System not booting keep rolling for hours

    I need help, my iMac mal-functioning. @ boot it will not boot to desktop, some 1 should pls help

  • Monitoring, Tracing Implementation within Enterprise Portal

    Hi all, I am not sure how to point out my situation but I need to figure out a way to save all the information a user leaves behind when logging on to Portal and does any kind of activity. In my case, I have someone who logs on, requests something an