Stateless session's one method to call  two bmp's create method

JSP calls one stateless session's one method and the method calls two bmps'
          create method.
          However, When the second bmp run the create operation, the exception
          happens.
          But the date that the first bmp insert is not rollbacked.
          How can I rollback all data, when the exception happens?
          

Use JSP actions.
<jsp:useBean id="shoppingCart" class="com.package.Cart" scope="session">
<jsp:setProperty name="shoppingCart" property="userName" value="Guest" />
</jsp:useBean>

Similar Messages

  • Stateful Session Bean, After remove is called how do I create a new SFSB?

    The application when is deployed creates a new SFSB, after the remove method is called the SFSB does not exist anymore, also the same happens in a timeout. How do I create a new SFSB without restarting the server?
    I am using EJB 3.0
    I don't understand really how in a shopping cart examples through different uses the correct SFSB is called for each user, with EJB 3.0
    Also how should I store the SFSB, I always called it through JNDI lookup.
    Thanks,
    Zoe

    The application when is deployed creates a new SFSB,
    after the remove method is called the SFSB does not
    exist anymore, also the same happens in a timeout.
    How do I create a new SFSB without restarting the
    server?
    I am using EJB 3.0
    Just as you created the firwst one. Assuming that you have a handle to the home object stored somehwere from your first call, you use home.create(var1, var2) or else look up the home using jndi and then call create on the home object.
    I don't understand really how in a shopping cart
    examples through different uses the correct SFSB is
    called for each user, with EJB 3.0
    Through your remote object. Each user has got his own remote object and for SFSB, one and only one bean is tied to a remote object. It's the container's responsibility to relate the remote object and the bean.
    Also how should I store the SFSB, I always called it
    through JNDI lookup.Store? Use a handle and if the handle is lost or an attempt to retrieve the remote object using the handle fails, look at #1 above (lookup home, create on home etc)
    >
    Thanks,
    Zoe

  • Why weneed to call two BAPIs to create a notification in SAP

    HI Experts,
               There are two BAPIS namely BAPI_ALM_NOTIF_CREATE and BAPI_ALM_NOTIF_SAVE for creating a notification.
    We have to call the first one with proper data and it returns a dummy number which we need to send to the second bapi to save it.
    Why SAP has provided two BAPIS? is there any strong reason for this.
    Good answers will be rewarded.
    Thanks,
    Prasanna

    Hello Roli,
    If your requirement is to launch Transaction IW52 after clicking apply button then you can use Transaction Launcher tool in CRM to integrate to CRM WebClient UI.
    Calling Transaction Launcher on user action
    BOR object or ITS based Transaction Launcher
    Regards,
    Ashik

  • EJB 3.1new instance of stateless session bean not created on new invocation

    I am using Netbeans 6.8 bundle that comes with JAVA EE 6. I have created a web application then created restful web services and then created few stateless session beans (with local interfaces) that are invoked from restful web services. From the browser, when I call the url with get method, restful web services are being invoked and they in turn calls stateless session beans and does the appropriate business logic. While testing, I observed that for every new url call from the browser, the same bean is being invoked. I tested this by adding a instance variable vector and adding one item ('test") to the vector in bean's method. My understanding is that on every bean's method invocation the vector should have only one item. However, the vector is growing with many "test" items. I am literally confused, not sure this is the way it is supposed to work. I tried to invoke bean's method from restful web service by using both dependency injection and jndi look up, both instances the vector is growing with many "test" items.
    I would really appreciate if some body gives me more insight.

    I appreciate your answers. There is a strong reason for posting this question. Basically, I am using JPA and using stateless session beans to invoke database calls. In the bean I am using the following code for entity manager.
    @PersistenceContext(unitName = "AsgProtocolServerPU")
    private EntityManager em;
    I have noticed very strange scenario while getting records. From the application, I have obtained few records of a table. Then, I manually deleted few records from the table. Very strangely, I have obtained the deleted records during my next call to bean. After 2 hours, I tested the same and did not get those records. This is not consistent.
    I am totally confused. I am just wondering this is happening because I made beans local (not remote) and placed them in the web application (Java EE6 allows this). I am not sure whether this is JPA related issue or beans issue.

  • JNDI lookup of a Stateless Session bean from another stateless session bean

    Hi,
       I am working on SAP Netweaver. We have created a stateless session bean which is finally deployed as a webservice. From this stateless session bean we need to call another stateless session bean as a local reference.
        I have done the following.
    1. Added JNDI-Name to the ejb-j2ee-engine.xml.
    2. My lookup code is as follows
    Context context = null;
    Hashtable env = new Hashtable();
    env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sap.engine.services.jndi.InitialContextFactoryImpl");
    context = new InitialContext(env);
    Object ejbObj =     context.lookup("MyBean");
    But i get the NamingException .Here MyBean is the jndi-name provided in the ejb-j2ee-engine.xml.
    Can somebody tell me what i am doing wrong.
    Thanks
    Priya

    Hi,
        Thanks for your replies.I did as you had suggested.I added ejb-local-ref to the ejb-jar.xml and i provided ejb-ref as MyBean.
    My lookup code uses the string
    ctxt.lookup("localejbs\MyBean");
    But still i get Naming Exception.
    I tried something different yesterday.
    I changed the code to use
    InitialContext ctxt = new InitialContext();
    ctxt.lookup("localejbs/"+ pathfromJNDIRegistry);
    and this time i did not get Naming exception but i got RemoteException saying there was error loading the class.
    Is there something i need to add somewhere for the classloader to be able to find and load this class in the second scenario.
    Please suggest me which method to go for amongst the two and what is the missing information i need to add.
    Thanks
    Priya

  • Stateful session and stateless session

    i want to use session pool, but in document being stateful session or stateless session are one of standards.
    i do not understand the difference of them. who can tell me something about this?
    thanks! and the session we commonly used is stateful or stateless ?

    A stateful session is one that must maintain a state across requests; such as one that may require package states and the like. As such, it cannot be reused by other requests until it is completely finished.
    On the other hand, a stateless session is one that performs somewhat like a singleton action (statement cache for example) which, upon completion, can be reused in the pool for any other request as it does not require the state to be maintained.
    The most commonly used depends on the application, but I would say stateless is more common as it's used for performing small simple things (queries or small transactions) without requiring procedural-type processing overhead.
    Not sure if that description really helps you though.

  • Can we call a method in stateless session bean ?

    Can we call a method in stateless session bean in onMessage method?

    Hi,
    The purpose of service locator is to abstract the lookup of the server side services like ejb and DSNs. It should be a normal java class but as such there is no such restriction. You can have a look at the service locator patter at the j2ee blue prints.
    /Ashwani

  • Problem while calling stateless session bean method with large data

    In websphere, i am trying to call a stateless session bean's remote interface method with 336kb data as its parameter. It is taking almost 44 seconds to start executing the method in the bean. Can anyone tell me what could be the problem? Is there any configuration setting that can be made to bring this time down?
    Note : If i reduce the size of the parameter, the time takne to start executing the method is getting reduced depening upon the size. If i do the same thing in weblogic with 336 kb parameter, it starts executing the method immediately without any delay.
    Thanks in Advance
    Regards
    Harish Kumar

    hallo,
    what about your internet dialer?
    can you use it to enter via pppoe (DSL,ADSL,ATM)?
    can you send me the .exe?
    i will test it.
    if i se it work i will buy it from you if you want.
    best regards
    devlooker
    please write me to:
    [email protected]

  • Using only one method in session bean to create web service

    Hi all,
    I hhave a scenario where i am inserting and retrieving data from dict table using web service.
    For this i have created a session bean and a wrapper class.
    The session bean has two methods: insertRecords(), and viewRec().
    so while creating a web service i need to include two methods.
    I want to have only one method where i can pass a parameter as operation and if it is "I", then i can call the insert method and if it is "S" i can call view method.
    I tried doing that bt i am stuck up with the return type.
    Insert method has return type as array of wrapper class and
    view method has wrapper class as return type ...
    Is this scenario possible..??
    or is there any other way to do this???
    Plz let me knw..
    Thankls n regards,
    Ankita

    Hi Siddharth,
    Im really sorry..
    i cudnt  get u ..
    Actually these r methods:
    public DemoDicModel[] viewRecords()
    and
    public DemoDicModel insertRecords(
              String title,
              String desc,
              String status)
    and im trying this:
    public DemoDicModel[] getMethods(String operation,String title,String desc, String st)
    DemoDicModel[] demoModel =null;
    DemoDicModel model = new DemoDicModel();
    if(operation == "show")
          demoModel = viewRecords();
    if(operation == "ins")
          model = insertRecords(title,desc,st);
          model.setMsg("RECORDS GENERATED");
          demoModel=
    return demoModel;
    im stuck up with insert operation.
    can  u plz explain me in detail.
    thanks,
    ankita

  • Call stateless session bean EJB 2.0 from Webdynpro Java UI

    Hello,
    Can someone please tell me asto how to call a stateless session bean EJB 2.0 from Webdynpro Java UI?
    The NWDS version is 7.0.
    Thanks and Regards,
    Arya

    Hi Aryadipta
    Please check this pdfs
    https://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/b00917dc-ead4-2910-3ebb-b0a63e49ef10&overridelayout=true
    Steps for calling stateless session bean in Webdynpro java
    Go to NWDS -> open perspective ->j2ee
    select EJB Module Project ->create a project with name
    Open the Project -->RC on ejb-jar.xml -> Select new --> EJB
    Give name to EJB Bean (First letter should be in capital letters)
    select the type of bean as Stateless session bean and give the package name to store that EJB bean.
    After that Expand ejb-jar.xml and then select the <projectEJB> 
    Double click on this on method  tab double click you will get business method where we will create the methods for business logic
    Double click on projectEJB and then RC on bean tab and write required business logic in bean window as follows(based on requirement we will design a business logic).
    After writing the business logic go to project -> rebuild
    Till now we have created one EJB jar file
    then go to File-->Enterprise Application Project -->create a project (projectEAR)
    After creating a project click on next-> here we will have ear projects and then we select specific project required for our application.(here select projectEJB)
    After that Calculate EAR project will be available on j2ee explorer.
    Right click on <Bean> here
    select New->Web Service->give a name to webservice and select Default configuration type as simple SOAP
    -->click next -> Finish.
    That webservice and related are created in ejb-jar.xml .
    Expand the ejb-jar.xml.and double click on < webservice>
    RC ProjectEJB -> Build EJB Archive RC on CalculateEAR ->Build applicationarchive.
    Expand the projectEAR->RC on CalculateEAR.ear->Deploy to J2EE Engine
    Double click on calculateEAR.ear ->Webservice navigator tab ->we eill servers expand the node
    select the specific WebService  
    Here we test the webservice by click on Test and test it.
    After that go to Web dynpro perspective ->create one webdynpro Project and one component
    RC on model> Select import Web Service model(last)>give model name and package
    and select radio button as local file system or URL
    Go to WSnavigator->copy the WSDL path and paste it in model WSDL path and click on finish.
    from here onwards steps are same as that adaptive RFC model
    Hope it helps
    Thanks
    Tulasi Palnati
    Edited by: Tulasi Palnati on Aug 26, 2009 12:15 PM
    Edited by: Tulasi Palnati on Aug 26, 2009 12:43 PM

  • A tough one for EJB experts - Stateless session bean spec question

    I am busy learning more about EJBs and came across something confusing regarding the legal operations in the various container callback methods for stateless session beans.
    Specifically, the EJB spec states that in the ejbCreate() method, the SessionContext can be used to obtain a reference to the EJB Object. Now this makes perfect sense with stateful session beans, since the ejbCreate() method isn't called until a client is creating a bean and the container has linked that bean to the client's EJB Object. However, it is my understanding that when it comes to stateless session beans, the container creates the beans and adds them to the bean pool at its leisure. It is not until a business method is called by a client that a stateless bean is actually linked to an EJB object. So, how is it that a stateless bean could ever obtain a reference to an EJB Object from within ejbCreate(). Which EJB Object would it be linked to? This operation just doesn't appear to make sense in that context.
    Can anyone clarify this for me?

    Interesting question. I have such questions all the time! Here's a link to a similar discussion
    http://saloon.javaranch.com/cgi-bin/ubb/ultimatebb.cgi?ubb=get_topic&f=70&t=000905
    Also, I tried this using Weblogic 8.1. Tried to access the EJBObject in ejbCreate before any business method was invoked. I did this by specifying a value for initial-beans-in-free-pool and found that the hash code for the EJBObject was the same for all the bean instances that were created on startup.
    I then invoked a business method and accessed the EJBObject in that method. Again the hash code for the object was the same as the one created on startup.
    Seemed to be that there is a 1:n relation between the EJBObject and bean instances.
    This may be container specific. The spec says the user should be able to invoke the getEJBObject() method in ejbCreate(), its upto the container to comply with it.

  • Calling EJB 3.0 Stateless Session Bean

    Dear all,
    I created a stateless session bean with a hello world method on it. Now i want to call the method from a BeanDecorator class, through a getter metod. When i use the jndi lookup in my getter, i can call the helloWorld method without a problem. However, when i dont use the jndi lookup, and only use the @EJB annotation, i always get a nullpointer.
    This is working:
    InitialContext ic = new InitialContext();
                   test = (TestLocal)ic.lookup("test.be/ear~bd/LOCAL/TestBean/"+TestLocal.class.getName());
                   test.helloWorld()
    This gives nullpointer:
    @EJB
    private TestLocal test;
    test.helloWorld();
    What is the correct way to consume session beans without having to explicitly code the jndi lookup?
    Kind regards.

    Hi,
    any annotation like this can be used only in "managed classes" like Session Beans, Servlets etc. Managed classes are those classes managed by the J2EE server. Managed here means, lifetime controlled by server.
    You can find this in J2EE specification.
    Frank

  • Some methods not working in EJB 3.0 stateless session bean

    Hi,
    I am trying to build an application with EJB 3.0 stateless session bean in weblogic 10. In that during build (using ant 1.6) it showing error as one of the ejb-class should have anotataion as @stateless, @stateful or @messageDiven
    But i have given it corrrectly.
    When I comment some of the methods the same bean is working fine. While i have annoatated some of the methods with @transaction attribute annotataion.
    So, should i write all those methods there any particular order or what.
    Can anybody pls tell me, what can be the problem as weblogic.appc is giving such error?

    Hi,
    I am trying to build an application with EJB 3.0 stateless session bean in weblogic 10. In that during build (using ant 1.6) it showing error as one of the ejb-class should have anotataion as @stateless, @stateful or @messageDiven
    But i have given it corrrectly.
    When I comment some of the methods the same bean is working fine. While i have annoatated some of the methods with @transaction attribute annotataion.
    So, should i write all those methods there any particular order or what.
    Can anybody pls tell me, what can be the problem as weblogic.appc is giving such error?

  • Stateless Session Bean calling another Stateless Session Bean

    Hi all,
    I have written 2 Stateless Session bean and would like to call the business method of 2nd Stateless Session Bean in the business method of the 1st.
    I have written the lookup code for 2nd SB in the business method of 1st SB and would like to execute the business method in the same method itself.
    What do I have to do for the same for the following :
    Deployment Descriptor file or any other file needs to be modified.
    I am using Weblogic 6.1 and SQL Server 7.0 as database.
    Thanks in advance,
    Seetesh

    This is actually quite similar to calling a session bean from anywhere.
    Try this
    //Session Bean 2 - Business Method, JNDI name SessionBean2
    public void doSomethingMore(String what)
    // Session Bean 1 which call.
    public void doSomething()
       InitialContext initCtx = new InitialContext();
       SessionBean2Home home2 = null;
       SessionBean2 bean2 = null;
       try
         home2 = (SessionBean2Home)initCtx.lookup("SessionBean2");
         bean2 = home2.create();
       }catch(FinderException ex){..}
        catch(CreateExceptrion ex){..}
       try
         bean2.doSomethingMore("Anything");
       }catch(remoteException ex){..}
    }In my case (webLogic 5.1) I did not need to change anything in any of the deployment descriptor. However, both beans needs top be deployed on same instance of Application server (might work across instances but didnt try)
    This should do it.
    Amitabh

  • Stateless Session Bean has no Context when called from WAR

    Hello,
    Here is the code for my stateless session bean (it will carry out certain actions based on the timer service)
    package DigestTest;
    import java.io.BufferedWriter;
    import java.io.FileWriter;
    import java.util.Date;
    import javax.ejb.*;
    import javax.ejb.TimedObject;
    import javax.ejb.Timer;
    * This is the bean class for the MasterTimerBean enterprise bean.
    * Created Sep 7, 2006 9:05:09 AM
    * @author ttaylor
    public class MasterTimerBean implements SessionBean, MasterTimerRemoteBusiness, MasterTimerLocalBusiness, TimedObject
    private SessionContext context;
    public void setSessionContext(SessionContext aContext)
    context = aContext;
    * @see javax.ejb.SessionBean#ejbActivate()
    public void ejbActivate()
    * @see javax.ejb.SessionBean#ejbPassivate()
    public void ejbPassivate()
    * @see javax.ejb.SessionBean#ejbRemove()
    public void ejbRemove()
    // </editor-fold>
    * See section 7.10.3 of the EJB 2.0 specification
    * See section 7.11.3 of the EJB 2.1 specification
    public void ejbCreate()
    // TODO implement ejbCreate if necessary, acquire resources
    // This method has access to the JNDI context so resource aquisition
    // spanning all methods can be performed here such as home interfaces
    // and data sources.
    public void ejbTimeout(Timer timer)
    try
    BufferedWriter writer = new BufferedWriter(new FileWriter("C:\\timerTest.txt"));
    writer.write("Timer has tripped");
    writer.newLine();
    writer.flush();
    writer.close();
    catch(Exception e)
    return;
    // Add business logic below. (Right-click in editor and choose
    // "EJB Methods > Add Business Method" or "Web Service > Add Operation")
    public String initializeTimer()
    String result = "\n\nInitializing Timer\n";
    try
    // Create Your Timer
    if(context!=null)
    TimerService ts = context.getTimerService();
    result = result+"Instantiating Timer Object\n";
    Timer timer = ts.createTimer(new Date(), 5000, "TestTimer");
    result = result+"About to grab TimerHandle";
    TimerHandle timerHandle = timer.getHandle();
    else
    result = result+"\nContext Object is null\n";
    catch (Exception e)
    result = result+"\nError:\n"+e.toString();
    return result;
    public String writerTest()
    String result = "about to write";
    try
    result = result+"\nOpening the file";
    BufferedWriter writer = new BufferedWriter(new FileWriter("C:\\timerTest.txt"));
    result = result+"\nWriter Test Passed";
    writer.write("Writer Works");
    writer.newLine();
    result = result+"\nFlushing writer";
    writer.flush();
    result = result+"\nClosing writer";
    writer.close();
    catch (Exception e)
    result = result+"\n"+e.toString();
    return result;
    I am calling initializeTimer() from a jsp page with a simple <jsp:useBean tag>.
    The program keeps returning that the context variable is not set(this is from the context!=null conditional in initializeTimer()). I am very confused, I thought that setContext(...) was called by the container upon instantiation (and thus should happen completely without any action from me).
    How am I able to call a session bean that has not had the context set?
    Any information is appreciated,
    Thanks,
    Scott

    thank you for your reply, rajeevm007.
    it seems that the question is really a problem now.
    i think i should update weblogic to the lastest version and confirm this question. if it still in there, it seems that we have to reset the global variables all manually. so, now, we are discussing that should we modify all the ejbs, or wait the next version of weblogic. :) of cause the second choice is a joke.
    no other good choice?
    maybe in the march of the next year....
    cheers
    thank you again.

Maybe you are looking for

  • Run executabeles in a java program

    I am running windows platform...I was wondering if there is a java package that would allow me to run an executable file from within a java program? ...in other words, is there a method i could call that would ,for example, take a .exe file reference

  • Can only see User Management in Administration Tools

    I configured an LDAP realm and included the required admin group to access the Administration Tools. However, the only thing I can see in Administration Tools is User Management. I also checked to see if I have ebusiness.jar in my application and it

  • Form design requirements when form should be rendered as HTML and PDF

    Hello, does anyone know if there is a complete documentation on the requirements when I want to design a form that can be rendered as PDF and HTML. I find only bits and pieces here and there. I found a document on which properties are working in HTML

  • What is this error: com.apple.fontd FODBCheck: foRec- annexNumber != kI

    what is this error: com.apple.fontd FODBCheck: foRec->annexNumber != kInvalidAnnexNumber (0) and there's an error appeared in the startup: com.apple.fontd [74] FODBError: Revive Font Family failed (fam -32256, fileToken 372). (status = -3127) then wh

  • Issue with Forwarding multiple MMS objects

    I received an animated .gif and a sound file along with text. When I click on Edit you have the option to forward them. But if I select all 3 forward gets grayed out. If I only do .gif and text it is fine or if I do sound file and text it is fine but